.版本 2
.支持库 edroptarget
.支持库 iext
.支持库 EThread
.支持库 spec

.程序集 窗口程序集_窗口1
.程序集变量 集句柄, 整数型
.程序集变量 工作中, 逻辑型
.程序集变量 精英线程, 线程池类
.程序集变量 ww, 未闻花名花见皮肤

.子程序 _窗口1_创建完毕
.局部变量 buff, 字节集

ww.皮肤加载 (2)
网络版授权验证 (假, “f28ba622a3ef3abf0a419f5cd6b548396dbcd7bd0d25fc815b6256be1db23421d3a329637cdb54f61e492184d1602670dff739ec7bd2847d67b98f0bff373646”)
.如果真 (信息框 (“此程序仅用于学习、技术交流，请勿用于非法！如出现任何问题后果自负！” ＋ #换行符 ＋ “                                                                                              ”, #确认取消钮, “免责声明！！！”, ) ＝ #取消钮)
    结束 ()
.如果真结束

文件_写出_资源 (#RSCProjectDLL, 取运行目录 () ＋ “\RSCProject.dll”, , , 真)
??? ()  ' <!!!>

全目录临时 ＝ 取运行目录 () ＋ “\hy_wss\临时”
全目录状态 ＝ 取运行目录 () ＋ “\hy_wss\状态”
全PIC ＝ 取运行目录 () ＋ “\hy_wss\生成订单图片”
.如果真 (文件是否存在 (全目录临时) ＝ 假)
    目录_创建 (全目录临时)
.如果真结束
.如果真 (文件是否存在 (全目录状态) ＝ 假)
    目录_创建 (全目录状态)
.如果真结束
.如果真 (文件是否存在 (全PIC) ＝ 假)
    目录_创建 (全PIC)
.如果真结束


数据写入列表 ()
Gdip开始 ()
wss_全局初始化 (, , , , , , , , , )
初始化哈希N ()
拖放对象1.注册拖放控件 (超级列表框1.取窗口句柄 ())
状态条1.置文本 (0, “指定直播间商品pid的方法：进入直播间->点击小黄车->立即参与->自动跳转商品页面，网址上找到【pid=后面的数字串】例如：pid=1199637078930，复制：1199637078930”)
组合框_wss.现行选中项 ＝ 0
全wss_url ＝ 选择 (组合框_wss.现行选中项 ＝ 0, #常量wssurl, #常量wssurl2)
配置_读取_易语言组件 (窗口1)

.子程序 _超级列表框1_右键单击表项

弹出菜单 (菜单, , )

.子程序 _拖放对象1_得到文件
.参数 接收到的文件路径, 文本型
.局部变量 i, 文本型
.局部变量 第一次分割, 文本型, , "0"
.局部变量 第二次分割, 文本型, , "3"
.局部变量 N, 整数型
.局部变量 索引, 整数型
.局部变量 计次1, 整数型
.局部变量 计次2, 整数型
.局部变量 临时数组, 文本型, , "0"
.局部变量 文本数组, 文本型, , "0"

i ＝ 到文本 (读入文件 (接收到的文件路径))
文本数组 ＝ 分割文本 (i, #换行符, )
.计次循环首 (取数组成员数 (文本数组), 计次1)
    系统_处理事件 ()
    索引 ＝ 超级列表框1.插入表项 (, , , , , )
    超级列表框1.置标题 (索引, 0, 到文本 (索引 ＋ 1))
    超级列表框1.置标题 (索引, 1, 文本数组 [计次1])
    超级列表框1.置状态图片 (索引, 1)
    系统_处理事件 ()
.计次循环尾 ()
超级列表框1.允许重画 ()  ' 恢复自动重画
超级列表框1.发送信息 (277, 7, 0)  ' 显示最后一行
清除数组 (文本数组)

.子程序 _删除当前_被选择
.局部变量 i, 整数型
.局部变量 局_保存文本, 鱼刺类_输出文本
.局部变量 局_保存目录, 文本型

超级列表框1.删除表项 (超级列表框1.现行选中项)
.计次循环首 (超级列表框1.取表项数 (), i)
    系统_处理事件 ()
    超级列表框1.置标题 (i － 1, 0, 到文本 (i))
.计次循环尾 ()
.计次循环首 (超级列表框1.取表项数 (), i)
    系统_处理事件 ()
    超级列表框1.置状态图片 (i － 1, 1)
    超级列表框1.置标题 (i － 1, 0, 到文本 (i))
.计次循环尾 ()


.子程序 _删除勾选_被选择
.局部变量 表项数, 整数型
.局部变量 m, 整数型
.局部变量 i, 整数型
.局部变量 局_保存目录, 文本型
.局部变量 局_保存文本, 鱼刺类_输出文本

表项数 ＝ 超级列表框1.取表项数 ()
.计次循环首 (表项数, m)
    系统_处理事件 ()
    .如果真 (超级列表框1.取当前状态图片 (表项数 － m) ＝ 1)
        超级列表框1.删除表项 (表项数 － m)
    .如果真结束

.计次循环尾 ()
.计次循环首 (超级列表框1.取表项数 (), i)
    系统_处理事件 ()
    超级列表框1.置状态图片 (i － 1, 1)
    超级列表框1.置标题 (i － 1, 0, 到文本 (i))
.计次循环尾 ()


.子程序 _清空CK_被选择
.局部变量 局_保存目录, 文本型

超级列表框1.全部删除 ()
局_保存目录 ＝ 取运行目录 () ＋ “\斗鱼CK\” ＋ 时间_格式化 (取现行时间 (), “MM.dd-”) ＋ “斗鱼CK.txt”
删除文件 (局_保存目录)

.子程序 GetIP, 逻辑型
.参数 返回ip, 文本型, 参考
.参数 返回端口, 整数型, 参考
.局部变量 str, 文本型
.局部变量 bool, 逻辑型
.局部变量 F_, 文本型, , "0"

.如果真 (选择框_D理.选中 ＝ 假)
    返回 (假)
.如果真结束

.循环判断首 ()
    str ＝ 编码_Utf8到Ansi (网页_访问_对象 (删首尾空 (编辑框_代理地址.内容)))
    状态条1.置文本 (0, “正在获取代理：” ＋ str)
    bool ＝ 是否IP格式 (str)
    程序_延时 (300)
.循环判断尾 (取反 (bool))
F_ ＝ 分割文本 (str, “:”, )
.如果真 (取数组成员数 (F_) ＝ 2)
    返回ip ＝ F_ [1]
    返回端口 ＝ 到整数 (F_ [2])
    返回 (真)
.如果真结束

返回 (假)

.子程序 是否IP格式, 逻辑型
.参数 IP, 文本型
.局部变量 正则, 正则表达式类

正则.创建 (“([1-9]\d{0,2}\.\d{1,3}\.\d{1,3}\.\d{1,3}):([1-9]\d{1,4})”, IP, , , , )
返回 (正则.取匹配数量 () ＞ 0)

.子程序 _获取绑定二维码_被选择

启动线程 (&取二维码, , )

.子程序 取二维码
.局部变量 yyjson, json对象
.局部变量 局_Cookie, 文本型
.局部变量 yyuid, 文本型
.局部变量 返回nick, 文本型
.局部变量 str, 文本型
.局部变量 返回time, 文本型
.局部变量 返回sig, 文本型
.局部变量 返回code, 文本型
.局部变量 qrcodeToken, 文本型
.局部变量 qrcode, 文本型
.局部变量 局_连接ID, 整数型
.局部变量 err0, 文本型
.局部变量 basestr, 文本型
.局部变量 返回数据指针, 整数型
.局部变量 返回utf8文本, 文本型
.局部变量 返回jsonstr, 文本型
.局部变量 返回name, 文本型
.局部变量 JSON, 类_json
.局部变量 返回buff, 字节集
.局部变量 buff, 字节集
.局部变量 JCE, 类_JCE解包
.局部变量 返回IP, 文本型
.局部变量 返回端口, 整数型
.局部变量 i, 整数型
.局部变量 D理类型, 整数型
.局部变量 body, 文本型
.局部变量 actId, 文本型

局_Cookie ＝ 超级列表框1.取标题 (超级列表框1.现行选中项, 1)
yyuid ＝ 文本_取右边 (删全部空 (局_Cookie), “yyuid=”)
.如果真 (取文本长度 (yyuid) ≠ 13)
    yyuid ＝ 文本_取出中间文本 (删全部空 (局_Cookie), “yyuid=”, “;”)
.如果真结束

.如果真 (hy获取昵称 (yyuid, 局_Cookie, 返回nick) ＝ 假)
    窗口_置状态信息 (超级列表框1.现行选中项, 1, 返回nick)
    返回 ()
.如果真结束

.计次循环首 (10, i)
    .如果 (选择框_D理.选中 ＝ 真)
        D理类型 ＝ 2
        GetIP (返回IP, 返回端口)
    .否则
        D理类型 ＝ 0
    .如果结束

    窗口_置状态信息 (超级列表框1.现行选中项, 1, 返回IP ＋ “->连接【” ＋ 到文本 (i) ＋ “】”)

    局_连接ID ＝ wss_连接 (全wss_url, , D理类型, 返回IP, 返回端口, , , , , &wb消息到达, &wb连接成功, &wb连接断开)
    .如果 (局_连接ID ＞ 0)
        跳出循环 ()

    .否则
        窗口_置状态信息 (超级列表框1.现行选中项, 1, “代理失败，正在重连...”)
    .如果结束

    系统_处理事件 ()
.计次循环尾 ()
.如果真 (局_连接ID ＝ 0)
    窗口_置状态信息 (超级列表框1.现行选中项, 1, “wss连接失败”)
    返回 ()
.如果真结束

basestr ＝ 生成绑定二维码参数 (yyuid, 局_Cookie)
.如果真 (WS发送bin (局_连接ID, 编码_BASE64解码 (basestr)) ＝ 假)
    窗口_置状态信息 (超级列表框1.现行选中项, 1, “wss发送失败”)
    wss_断开某个连接 (局_连接ID, 真)
    返回 ()

.如果真结束
.如果真 (哈希取出数据指针_buff解析 (局_连接ID, 返回buff) ＝ 假)
    窗口_置状态信息 (超级列表框1.现行选中项, 1, “buff解析失败”)
    wss_断开某个连接 (局_连接ID, 真)
    返回 ()
.如果真结束


' 调试输出 (“1---”, decodeBuff (返回buff))
buff ＝ decodeBuff2 (返回buff)
JCE.set (buff)
返回code ＝ UTF8到文本 (JCE.get (“0.2.1(1)”))
返回sig ＝ UTF8到文本 (JCE.get (“0.2.1(4)”))
返回time ＝ UTF8到文本 (JCE.get (“0.2.1(5)”))
.如果真 (返回code ＝ “” 或 返回sig ＝ “” 或 返回time ＝ “”)
    窗口_置状态信息 (超级列表框1.现行选中项, 1, “取code失败”)
    wss_断开某个连接 (局_连接ID, 真)
    返回 ()
.如果真结束

' actId=14311

actId ＝ “17096”

body ＝ “{” ＋ #引号 ＋ “queryString” ＋ #引号 ＋ “:” ＋ #引号 ＋ “t=” ＋ 返回time ＋ “&gameIdList=cjm&actId=” ＋ actId ＋ “&livePlatId=huya&sig=” ＋ 返回sig ＋ “&code=” ＋ 返回code ＋ “&faceUrl=https%3A%2F%2Fdiy-assets.msstatic.com%2Fcqhfolder%2FNewDefault.png&nickName=” ＋ 编码_URL编码_JS (返回nick, 1) ＋ “&redirectUrl=https%3A%2F%2Fzt.huya.com%2Fb02faae1%2Fpc%2Findex.html%3FsourceId%3Dyellowcarlist%26pid%3D” ＋ 全直播间id ＋ “%26anchorUid%3D” ＋ 全直播间id ＋ “%26roomid%3D30596253&sessionId=” ＋ 返回time ＋ “_” ＋ 文本_取随机字符 (7, 位或 (1, 2)) ＋ #引号 ＋ “}”


str ＝ 到文本 (网页_访问_对象 (“https://livelinkbind.game.qq.com/api/qrcode/getMiniAppQrcode”, 1, body, , , “Host: livelinkbind.game.qq.com” ＋ #换行符 ＋ “Connection: keep-alive” ＋ #换行符 ＋ “Gap-Act-Id: 14311” ＋ #换行符 ＋ “sec-ch-ua-platform: ” ＋ #引号 ＋ “Windows” ＋ #引号 ＋ “” ＋ #换行符 ＋ “sec-ch-ua: ” ＋ #引号 ＋ “Not(A:Brand” ＋ #引号 ＋ “;v=” ＋ #引号 ＋ “99” ＋ #引号 ＋ “, ” ＋ #引号 ＋ “Google Chrome” ＋ #引号 ＋ “;v=” ＋ #引号 ＋ “133” ＋ #引号 ＋ “, ” ＋ #引号 ＋ “Chromium” ＋ #引号 ＋ “;v=” ＋ #引号 ＋ “133” ＋ #引号 ＋ “” ＋ #换行符 ＋ “Gap-User-From: pc” ＋ #换行符 ＋ “Gap-Plat-Id: huya” ＋ #换行符 ＋ “sec-ch-ua-mobile: ?0” ＋ #换行符 ＋ “User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36” ＋ #换行符 ＋ “Accept: application/json, text/plain, */*” ＋ #换行符 ＋ “Content-Type: application/json” ＋ #换行符 ＋ “Gap-From-Id: ” ＋ #换行符 ＋ “Vulcan-AccType: auth_in_h5” ＋ #换行符 ＋ “Origin: https://livelink.qq.com” ＋ #换行符 ＋ “Sec-Fetch-Site: same-site” ＋ #换行符 ＋ “Sec-Fetch-Mode: cors” ＋ #换行符 ＋ “Sec-Fetch-Dest: empty” ＋ #换行符 ＋ “Referer: https://livelink.qq.com/”, , , 真))



yyjson.清空 ()
yyjson.解析 (str)
qrcodeToken ＝ yyjson.取文本 (“jData/qrcodeToken”)
qrcode ＝ yyjson.取文本 (“jData/qrcode”)
BASE64编解码_ASM_初始化 ()
图片框1.图片 ＝ BASE64解码_ASM (qrcode)
标签反馈.标题 ＝ “游戏用户绑定小程序二维码”
basestr ＝ 生成查询游戏名 (yyuid, 局_Cookie, #常量outerActId)  ' '#常量outerActId
.如果真 (WS发送bin (局_连接ID, 编码_BASE64解码 (basestr)) ＝ 假)
    窗口_置状态信息 (超级列表框1.现行选中项, 1, “wss发送消息失败”)
    wss_断开某个连接 (局_连接ID, 真)
    返回 ()
.如果真结束
.如果真 (哈希取出数据指针_buff解析 (局_连接ID, 返回buff) ＝ 假)
    窗口_置状态信息 (超级列表框1.现行选中项, 1, “buff解析失败”)
    wss_断开某个连接 (局_连接ID, 真)
    返回 ()
.如果真结束


' 调试输出 (“decodeBuff (返回buff)---”, decodeBuff (返回buff))

buff ＝ decodeBuff2 (返回buff)
JCE.set (buff)
返回name ＝ UTF8到文本 (JCE.get (“0.2.4.1”))
超级列表框1.置标题 (超级列表框1.现行选中项, 3, 选择 (返回name ≠ “”, 返回name, “NULL”))
wss_断开某个连接 (局_连接ID, 真)
窗口_置状态信息 (超级列表框1.现行选中项, 1, “操作完成”)
' hy检测账号 (qrcodeToken)

.子程序 hy获取昵称, 逻辑型
.参数 参_uid, 文本型
.参数 参_Cookie, 文本型
.参数 返回nickname, 文本型, 参考
.局部变量 str, 文本型
.局部变量 yyjson, json对象
.局部变量 CALLBACK, 文本型
.局部变量 nick, 文本型

str ＝ 编码_Utf8到Ansi (网页_访问_对象 (“https://live.huya.com/task/taskTotal?uid=” ＋ 参_uid ＋ “&callback=TT_HD_USER_CARD_JSONP_CALLBACK”, , , 参_Cookie, , “Host: live.huya.com” ＋ #换行符 ＋ “Connection: keep-alive” ＋ #换行符 ＋ “User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36” ＋ #换行符 ＋ “sec-ch-ua-platform: ” ＋ #引号 ＋ “Windows” ＋ #引号 ＋ “” ＋ #换行符 ＋ “Accept: */*” ＋ #换行符 ＋ “Referer: https://www.huya.com/”, , , 真))
' 调试输出 (取程序名称 (1), str)
CALLBACK ＝ 文本_取出中间文本 (str, “TT_HD_USER_CARD_JSONP_CALLBACK(”, “)”)
.如果真 (CALLBACK ＝ “”)
    返回 (假)
.如果真结束

yyjson.清空 ()
yyjson.解析 (CALLBACK)
nick ＝ yyjson.取文本 (“data/level/nick”)
.如果真 (nick ≠ “”)
    返回nickname ＝ nick
    返回 (真)
.如果真结束

返回nickname ＝ str
返回 (假)

.子程序 hy检测账号, , , 通过兑换检测账号
.参数 参_qrcodeToken, 文本型
.局部变量 str, 文本型
.局部变量 isScan, 逻辑型
.局部变量 yyjson, json对象
.局部变量 isCompleted, 逻辑型

窗口_置状态信息 (超级列表框1.现行选中项, 2, “检测账号...”)
状态条1.置文本 (0, “正在检测账号... ”)
.计次循环首 (100, )
    str ＝ 编码_Utf8到Ansi (网页_访问_对象 (“https://livelinkbind.game.qq.com/api/qrcode/poolingQrcodeStatus”, 1, “{” ＋ #引号 ＋ “qrcodeToken” ＋ #引号 ＋ “:” ＋ #引号 ＋ 参_qrcodeToken ＋ #引号 ＋ “}”, , “Host: livelinkbind.game.qq.com” ＋ #换行符 ＋ “Connection: keep-alive” ＋ #换行符 ＋ “Gap-Plat-Id: huya” ＋ #换行符 ＋ “Vulcan-AccType: auth_in_h5” ＋ #换行符 ＋ “Gap-User-From: pc” ＋ #换行符 ＋ “User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36” ＋ #换行符 ＋ “Gap-Act-Id: 9504” ＋ #换行符 ＋ “Content-Type: application/json” ＋ #换行符 ＋ “Accept: application/json, text/plain, */*” ＋ #换行符 ＋ “Gap-From-Id: ” ＋ #换行符 ＋ “sec-ch-ua-platform: ” ＋ #引号 ＋ “Windows” ＋ #引号 ＋ “” ＋ #换行符 ＋ “Origin: https://livelink.qq.com” ＋ #换行符 ＋ “Referer: https://livelink.qq.com/”))
    ' 扫码成功返回 {"iRet":0,"sMsg":"ok","jData":{"isScan":true,"isExpired":false,"isCompleted":true},"tid":"8c9e69e8a2f24aa79ccec014e31e58d1","v":2,"apiName":""}
    ' 调试输出 (“检测账号：”, str)
    状态条1.置文本 (0, “检测账号：” ＋ str)
    yyjson.清空 ()
    yyjson.解析 (str)
    isScan ＝ yyjson.取逻辑 (“jData/isScan”)
    isCompleted ＝ yyjson.取逻辑 (“jData/isCompleted”)
    .如果真 (isScan ＝ 真)
        ' 调试输出 (“已经扫码等待...：”, str)
        .如果真 (isCompleted ＝ 真)
            ' 调试输出 (“扫码绑定成功：”, str)
            跳出循环 ()
        .如果真结束

    .如果真结束

    程序_延时 (2000)
.计次循环尾 ()

.子程序 _充值精英令1_被选择, , , 100元

启动线程 (&子程序充值精英令, 1, )

.子程序 _充值精英令10_被选择

启动线程 (&子程序充值精英令, 10, )

.子程序 _充值精英令100_被选择

启动线程 (&子程序充值精英令, 100, )

.子程序 _充值精英令1000_被选择

启动线程 (&子程序充值精英令, 1000, )

.子程序 子程序充值精英令
.参数 充值类型, 整数型
.局部变量 局_Cookie, 文本型
.局部变量 yyuid, 文本型
.局部变量 局_连接ID, 整数型
.局部变量 err0, 文本型
.局部变量 basestr, 文本型
.局部变量 返回jsonstr, 文本型
.局部变量 JSON, 类_json
.局部变量 返回充值ID, 文本型
.局部变量 返回付款码, 文本型
.局部变量 返回文本, 文本型
.局部变量 局_下单模式, 整数型
.局部变量 返回buff, 字节集
.局部变量 buff, 字节集
.局部变量 JCE, 类_JCE解包
.局部变量 openapi, 文本型
.局部变量 返回IP, 文本型
.局部变量 返回端口, 整数型
.局部变量 i, 整数型
.局部变量 D理类型, 整数型
.局部变量 局_充值数量, 文本型

.如果真 (充值类型 ＝ 1)
    局_下单模式 ＝ 8
.如果真结束
.如果真 (充值类型 ＝ 10)
    局_下单模式 ＝ 9
.如果真结束
.如果真 (充值类型 ＝ 100)
    局_下单模式 ＝ 6
.如果真结束
.如果真 (充值类型 ＝ 1000)
    局_下单模式 ＝ 10
.如果真结束


调试输出 (局_下单模式)
局_充值数量 ＝ 删全部空 (编辑框_充值数量.内容)
.如果真 (局_充值数量 ＝ “”)
    窗口_置状态信息 (超级列表框1.现行选中项, 1, “请设定充值数量！”)
    返回 ()
.如果真结束


窗口_置状态信息 (超级列表框1.现行选中项, 1, “正在充值$” ＋ 到文本 (充值类型) ＋ “..”)
局_Cookie ＝ 超级列表框1.取标题 (超级列表框1.现行选中项, 1)
yyuid ＝ 文本_取右边 (删全部空 (局_Cookie), “yyuid=”)
.如果真 (取文本长度 (yyuid) ≠ 13)
    yyuid ＝ 文本_取出中间文本 (删全部空 (局_Cookie), “yyuid=”, “;”)
.如果真结束

.计次循环首 (10, i)
    .如果 (选择框_D理.选中 ＝ 真)
        D理类型 ＝ 2
        GetIP (返回IP, 返回端口)
    .否则
        D理类型 ＝ 0
    .如果结束

    窗口_置状态信息 (超级列表框1.现行选中项, 1, 返回IP ＋ “->连接【” ＋ 到文本 (i) ＋ “】”)

    局_连接ID ＝ wss_连接 (全wss_url, , D理类型, 返回IP, 返回端口, , , , , &wb消息到达, &wb连接成功, &wb连接断开)
    .如果 (局_连接ID ＞ 0)
        跳出循环 ()

    .否则
        窗口_置状态信息 (超级列表框1.现行选中项, 1, “代理失败，正在重连...”)
    .如果结束

    系统_处理事件 ()
.计次循环尾 ()
.如果真 (局_连接ID ＝ 0)
    窗口_置状态信息 (超级列表框1.现行选中项, 1, “wss连接失败”)
    返回 ()
.如果真结束

basestr ＝ 小黄车操作 (局_下单模式, 局_充值数量, yyuid, 局_Cookie, “”)
.如果真 (WS发送bin (局_连接ID, 编码_BASE64解码 (basestr)) ＝ 假)
    窗口_置状态信息 (超级列表框1.现行选中项, 1, “wss发送失败”)
    wss_断开某个连接 (局_连接ID, 真)
    返回 ()

.如果真结束
.如果真 (哈希取出数据指针_buff解析 (局_连接ID, 返回buff) ＝ 假)
    窗口_置状态信息 (超级列表框1.现行选中项, 1, “buff解析失败”)
    wss_断开某个连接 (局_连接ID, 真)
    返回 ()
.如果真结束


调试输出 (“1---”, decodeBuff (返回buff))
buff ＝ decodeBuff2 (返回buff)
JCE.set (buff)
'  [0]┓
'  [0](Short):200
'  [1](Str=0):
'  [2](Int):5788374
'  [4](Int):4798274
'  [5](Byte):10
'  [0(1)]┛
'  [8](Short):5000
'  [9](Map,0):
'  [10](Map,0):
'  [2](Zero):0
'  [3](Str=0):
'  [4](Zero):0
'  [5](Zero):0
'  [6](Str=0):

返回文本 ＝ UTF8到文本 (JCE.get (“0.6.1”))
调试输出 (“返回文本”, 返回文本)
.如果真 (寻找文本 (返回文本, “需先开通”, , 假) ≠ -1)
    窗口_置状态信息 (超级列表框1.现行选中项, 1, 返回文本)
    wss_断开某个连接 (局_连接ID, 真)
    返回 ()
.如果真结束

返回充值ID ＝ 到文本 (JCE.get整数 (“0.2”))
调试输出 (“返回充值ID”, 返回充值ID)
.如果真 (返回充值ID ＝ “0”)
    窗口_置状态信息 (超级列表框1.现行选中项, 1, “取充值id失败”)
    wss_断开某个连接 (局_连接ID, 真)
    返回 ()
.如果真结束


超级列表框1.置标题 (超级列表框1.现行选中项, 6, 返回充值ID)
程序_延时 (1000)
basestr ＝ 小黄车操作 (3, “”, yyuid, 局_Cookie, 返回充值ID)
.如果真 (WS发送bin (局_连接ID, 编码_BASE64解码 (basestr)) ＝ 假)
    窗口_置状态信息 (超级列表框1.现行选中项, 1, “小黄车下单失败”)
    wss_断开某个连接 (局_连接ID, 真)
    返回 ()

.如果真结束
.如果真 (哈希取出数据指针_buff解析 (局_连接ID, 返回buff) ＝ 假)
    窗口_置状态信息 (超级列表框1.现行选中项, 1, “buff解析失败”)
    wss_断开某个连接 (局_连接ID, 真)
    返回 ()
.如果真结束


' 调试输出 (“2---”, decodeBuff (返回buff))
buff ＝ decodeBuff2 (返回buff)
JCE.set (buff)
返回付款码 ＝ UTF8到文本 (JCE.get (“0.5”))
' 调试输出 (“返回付款码---”, 返回付款码)
.判断开始 (寻找文本 (返回付款码, “weixin://”, , 假) ≠ -1)
    图片框1.图片 ＝ 文本生成二维码图片 (返回付款码, , , , , 10)
    标签反馈.标题 ＝ “精英令牌” ＋ 到文本 (充值类型) ＋ “充值-Weixin”
    窗口_置状态信息 (超级列表框1.现行选中项, 1, “操作完成”)

.判断 (寻找文本 (返回付款码, “openapi.alipay.com”, , 假) ≠ -1)
    openapi ＝ Zfb跳转二维码 (返回付款码)
    ' '调试输出 (“Zfb跳转二维码---”, openapi)
    图片框1.图片 ＝ 文本生成二维码图片 (openapi, , , , , 10)
    标签反馈.标题 ＝ “精英令牌” ＋ 到文本 (充值类型) ＋ “充值-Zfb”
    窗口_置状态信息 (超级列表框1.现行选中项, 1, “操作完成”)


.默认
    窗口_置状态信息 (超级列表框1.现行选中项, 1, “获取支付二维码失败”)
    wss_断开某个连接 (局_连接ID, 真)
    返回 ()
.判断结束

wss_断开某个连接 (局_连接ID, 真)

' basestr ＝ 小黄车操作 (4,"", yyuid, 局_Cookie, 返回充值ID)
' 下面这里 没付款之前是正常得 付款后就不行了 你看下我操作
.' 计次循环首 (50, )
    .' 如果真 (WS发送bin (局_连接ID, 编码_BASE64解码 (basestr)) ＝ 假)
        '  超级列表框1.置标题 (超级列表框1.现行选中项, 4, “检测状态失败”)
        '  返回 ()

    .如果真结束
    .' 如果真 (哈希取出数据指针_buff解析 (局_连接ID, 返回jsonstr) ＝ 假)
        '  '  超级列表框1.置标题 (超级列表框1.现行选中项, 4, 返回jsonstr)
        '  '  返回 ()
    .如果真结束

    '  调试输出 (“检测充值状态返回jsonstr----”, 返回jsonstr)
    '  程序_延时 (1000)
.' 计次循环尾 ()


.子程序 Zfb跳转二维码, 文本型
.参数 参_url, 文本型
.局部变量 str, 文本型

str ＝ 到文本 (网页_访问_对象 (参_url, , , , , “Host: openapi.alipay.com” ＋ #换行符 ＋ “Connection: keep-alive” ＋ #换行符 ＋ “sec-ch-ua: ” ＋ #引号 ＋ “Not_A Brand” ＋ #引号 ＋ “;v=” ＋ #引号 ＋ “8” ＋ #引号 ＋ “, ” ＋ #引号 ＋ “Chromium” ＋ #引号 ＋ “;v=” ＋ #引号 ＋ “120” ＋ #引号 ＋ “, ” ＋ #引号 ＋ “Google Chrome” ＋ #引号 ＋ “;v=” ＋ #引号 ＋ “120” ＋ #引号 ＋ “” ＋ #换行符 ＋ “sec-ch-ua-mobile: ?0” ＋ #换行符 ＋ “sec-ch-ua-platform: ” ＋ #引号 ＋ “Windows” ＋ #引号 ＋ “” ＋ #换行符 ＋ “Upgrade-Insecure-Requests: 1” ＋ #换行符 ＋ “User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36” ＋ #换行符 ＋ “Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7”))
返回 (“https://qr.alipay.com/” ＋ 文本_取出中间文本 (str, “https://qr.alipay.com/”, #引号))

.子程序 检测鱼刺充值状态
.参数 参_token, 文本型, 可空
.参数 参_索引, 整数型
.参数 参_cook, 文本型
.局部变量 str, 文本型
.局部变量 局_余额, 整数型
.局部变量 局_工作, 逻辑型
.局部变量 an, 整数型
.局部变量 msg, 文本型
.局部变量 yyjson, json对象

' 检测充值鱼刺成功 '{"error":0,"data":{"state":2,"order_id":"7682614632081039361001","quantity":10,"nickname":"用户27335596"}}
局_工作 ＝ 真
.判断循环首 (局_工作 ＝ 真)
    _原子递增 (an)
    str ＝ 到文本 (网页_访问_对象 (“https://cz.douyu.com/item/gold/account”, , , 参_cook, , ))
    ' '调试输出 (str)
    状态条1.置文本 (0, “[” ＋ 到文本 (an) ＋ “]检测鱼翅充值-> ” ＋ str)
    yyjson.清空 ()
    yyjson.解析 (str)
    局_余额 ＝ yyjson.取整数 (“data/gold”)
    ' 调试输出 (“局_余额”, 局_余额)
    窗口_置状态信息 (参_索引, 1, “[” ＋ 到文本 (an) ＋ “]检测鱼翅充值”)
    .如果真 (局_余额 ＞ 0)
        窗口_置状态信息 (参_索引, 1, “鱼刺余额：” ＋ 到文本 (局_余额))
        返回 ()
    .如果真结束

    程序_延时 (2000)
.判断循环尾 ()

.子程序 _查询手册积分_被选择

启动线程 (&查手册积分, , )

.子程序 查手册积分
.局部变量 局_文本, 文本型
.局部变量 局_Cookie, 文本型
.局部变量 局_F, 文本型, , "0"
.局部变量 ctnEX, 文本型
.局部变量 str, 文本型
.局部变量 userid, 文本型
.局部变量 diff, 文本型

局_文本 ＝ 超级列表框1.取标题 (超级列表框1.现行选中项, 1)
ctnEX ＝ 超级列表框1.取标题 (超级列表框1.现行选中项, 5)

局_F ＝ 分割文本 (局_文本, “----”, )
.如果真 (取数组成员数 (局_F) ＜ 3)
    窗口_置状态信息 (超级列表框1.现行选中项, 2, “Cookie格式错误”)
    返回 ()
.如果真结束

userid ＝ 局_F [2]
局_Cookie ＝ 局_F [3]


str ＝ 编码_Utf8到Ansi (网页_访问_对象 (“https://www.douyu.com/japi/oms/web/peace/credit/diff”, 1, “{” ＋ #引号 ＋ “userId” ＋ #引号 ＋ “:” ＋ #引号 ＋ userid ＋ #引号 ＋ “,” ＋ #引号 ＋ “ctn” ＋ #引号 ＋ “:” ＋ #引号 ＋ ctnEX ＋ #引号 ＋ “}”, 局_Cookie, , ))

' '{"error":0,"msg":"success","data":{"diff":300}
状态条1.置文本 (0, “查积分-> ” ＋ str)
diff ＝ 文本_取出中间文本 (str, “diff” ＋ #引号 ＋ “:”, “}”)
.如果真 (diff ≠ “”)
    窗口_置状态信息 (超级列表框1.现行选中项, 5, “积分：” ＋ diff)
    返回 ()
.如果真结束

窗口_置状态信息 (超级列表框1.现行选中项, 5, str)

.子程序 _一键查询积分_被选择
.局部变量 p, 整数型

.计次循环首 (超级列表框1.取表项数 (), p)
    .如果真 (超级列表框1.取当前状态图片 (p － 1) ＝ 1)
        启动线程 (&查积分记录_线程, p － 1, )
        程序_延时 (10)
    .如果真结束

.计次循环尾 ()

.子程序 查积分记录_线程
.参数 索引E, 整数型
.局部变量 局_Cookie, 文本型
.局部变量 yyuid, 文本型
.局部变量 bin, 字节集
.局部变量 局_连接ID, 整数型
.局部变量 err0, 文本型
.局部变量 basestr, 文本型
.局部变量 JSON, 类_json
.局部变量 返回jsonstr, 文本型
.局部变量 返回积分, 文本型
.局部变量 返回buff, 字节集
.局部变量 JCE, 类_JCE解包
.局部变量 buff, 字节集
.局部变量 返回类型, 字节型
.局部变量 runIP, 文本型
.局部变量 返回IP, 文本型
.局部变量 返回端口, 整数型
.局部变量 i, 整数型
.局部变量 D理类型, 整数型

全读写锁.读进入 ()
局_Cookie ＝ 超级列表框1.取标题 (索引E, 1)
yyuid ＝ 文本_取右边 (删全部空 (局_Cookie), “yyuid=”)
.如果真 (取文本长度 (yyuid) ≠ 13)
    yyuid ＝ 文本_取出中间文本 (删全部空 (局_Cookie), “yyuid=”, “;”)
.如果真结束

全读写锁.读退出 ()
.计次循环首 (10, i)
    .如果 (选择框_D理.选中 ＝ 真)
        D理类型 ＝ 2
        GetIP (返回IP, 返回端口)
    .否则
        D理类型 ＝ 0
    .如果结束

    窗口_置状态信息 (索引E, 1, 返回IP ＋ “->连接【” ＋ 到文本 (i) ＋ “】”)

    局_连接ID ＝ wss_连接 (全wss_url, , D理类型, 返回IP, 返回端口, , , , , &wb消息到达, &wb连接成功, &wb连接断开)
    .如果 (局_连接ID ＞ 0)
        跳出循环 ()

    .否则
        窗口_置状态信息 (索引E, 1, “代理失败，正在重连...”)
    .如果结束

    系统_处理事件 ()
.计次循环尾 ()
.如果真 (局_连接ID ＝ 0)
    窗口_置状态信息 (索引E, 1, “wss连接失败”)
    返回 ()
.如果真结束


basestr ＝ 生成查询积分 (yyuid, 局_Cookie, #常量sid)
.如果真 (WS发送bin (局_连接ID, 编码_BASE64解码 (basestr)) ＝ 假)
    窗口_置状态信息 (索引E, 1, “wss发送消息失败”)
    wss_断开某个连接 (局_连接ID, 真)
    返回 ()
.如果真结束
.如果真 (哈希取出数据指针_buff解析 (局_连接ID, 返回buff) ＝ 假)
    窗口_置状态信息 (索引E, 1, “buff解析失败”)
    wss_断开某个连接 (局_连接ID, 真)
    返回 ()
.如果真结束

' '调试输出 (“返回buff---”, decodeBuff (返回buff))
buff ＝ decodeBuff2 (返回buff)
JCE.set (buff)
.如果真 (JCE.getShort (“0.0”) ≠ 200)
    窗口_置状态信息 (索引E, 1, “积分查询，请求失败”)
    wss_断开某个连接 (局_连接ID, 真)
    返回 ()
.如果真结束

JCE.get (“0.6”, 返回类型)
' '调试输出 (“返回类型---”, 返回类型)
.如果真 (返回类型 ＝ 1)
    返回积分 ＝ 到文本 (JCE.getShort (“0.6”))
.如果真结束
.如果真 (返回类型 ＝ 0)
    返回积分 ＝ 到文本 (JCE.getByte (“0.6”))
.如果真结束
.如果真 (返回类型 ＝ 12)
    返回积分 ＝ 到文本 (JCE.getByte (“0.6”))
.如果真结束


窗口_置状态信息 (索引E, 1, 选择 (返回积分 ≠ “”, 返回积分, “0”))
wss_断开某个连接 (局_连接ID, 真)

'  [0]┓
'  [0](Short):200
'  [1](Str=12):请求成功
'  [2](Short):300
'  [3](Zero):0
'  [4](Short):300
'  [5](Zero):0
'  [6](Short):300
'  [0(1)]┛
'  [8](Short):5000
'  [9](Map,0):
'  [10](Map,0):
'  [2](Zero):0
'  [3](Str=0):
'  [4](Zero):0
'  [5](Zero):0
'  [6](Str=0):
' '其他方式的
'  [0]┓
'  [0](Short):200
'  [1](Str=12):请求成功
'  [2](Short):2010
'  [3](Short):1980
'  [4](Short):2010
'  [5](Short):1980
'  [6](Byte):30
'  [0(1)]┛
'  [8](Short):5000
'  [9](Map,0):
'  [10](Map,0):
'  [2](Zero):0
'  [3](Str=0):
'  [4](Zero):0
'  [5](Zero):0
'  [6](Str=0):


.子程序 _兑换商品_被选择

启动线程 (&商品兑换, , )

.子程序 商品兑换
.局部变量 局_Cookie, 文本型
.局部变量 yyuid, 文本型
.局部变量 局_昵称, 文本型
.局部变量 局_商品txt, 文本型
.局部变量 _F, 文本型, , "0"
.局部变量 局_商品名称, 文本型
.局部变量 局_商品价格, 文本型
.局部变量 局_商品ID, 文本型
.局部变量 局_连接ID, 整数型
.局部变量 err0, 文本型
.局部变量 basestr, 文本型
.局部变量 返回jsonstr, 文本型
.局部变量 返回buff, 字节集
.局部变量 buff, 字节集
.局部变量 JCE, 类_JCE解包
.局部变量 返回兑换结果, 文本型
.局部变量 请求结果, 文本型
.局部变量 优化价格, 文本型
.局部变量 局_bin, 字节集
.局部变量 返回IP, 文本型
.局部变量 返回端口, 整数型
.局部变量 i, 整数型
.局部变量 D理类型, 整数型

局_Cookie ＝ 超级列表框1.取标题 (超级列表框1.现行选中项, 1)
yyuid ＝ 文本_取右边 (删全部空 (局_Cookie), “yyuid=”)
.如果真 (取文本长度 (yyuid) ≠ 13)
    yyuid ＝ 文本_取出中间文本 (删全部空 (局_Cookie), “yyuid=”, “;”)
.如果真结束

局_昵称 ＝ 超级列表框1.取标题 (超级列表框1.现行选中项, 3)
局_商品txt ＝ 组合框1.取项目文本 (组合框1.现行选中项)
.如果真 (局_商品txt ＝ “”)
    窗口_置状态信息 (超级列表框1.现行选中项, 1, “请添加商品！”)
    返回 ()
.如果真结束

_F ＝ 分割文本 (局_商品txt, “一”, )
.如果真 (取数组成员数 (_F) ＜ 4)
    窗口_置状态信息 (超级列表框1.现行选中项, 1, “商品格式错误”)
    返回 ()
.如果真结束

' 南瓜骑士载具枪械礼包一15000一9403一22%
局_商品名称 ＝ _F [1]
局_商品价格 ＝ _F [2]
局_商品ID ＝ _F [3]
窗口_置状态信息 (超级列表框1.现行选中项, 1, “兑换：” ＋ 局_商品txt)

.计次循环首 (10, i)
    .如果 (选择框_D理.选中 ＝ 真)
        D理类型 ＝ 2
        GetIP (返回IP, 返回端口)
    .否则
        D理类型 ＝ 0
    .如果结束

    窗口_置状态信息 (超级列表框1.现行选中项, 1, 返回IP ＋ “->连接【” ＋ 到文本 (i) ＋ “】”)
    局_连接ID ＝ wss_连接 (全wss_url, , D理类型, 返回IP, 返回端口, , , , , &wb消息到达, &wb连接成功, &wb连接断开)
    .如果 (局_连接ID ＞ 0)
        跳出循环 ()

    .否则
        窗口_置状态信息 (超级列表框1.现行选中项, 1, “代理失败，正在重连...”)
    .如果结束

    系统_处理事件 ()
.计次循环尾 ()
.如果真 (局_连接ID ＝ 0)
    窗口_置状态信息 (超级列表框1.现行选中项, 1, “wss连接失败”)
    返回 ()
.如果真结束


basestr ＝ 生成兑换商品 (yyuid, 局_Cookie, #常量sid, 局_商品ID)
.如果真 (WS发送bin (局_连接ID, 编码_BASE64解码 (basestr)) ＝ 假)
    窗口_置状态信息 (超级列表框1.现行选中项, 1, “wss发送消息失败”)
    wss_断开某个连接 (局_连接ID, 真)
    返回 ()
.如果真结束
.如果真 (哈希取出数据指针_buff解析 (局_连接ID, 返回buff) ＝ 假)
    窗口_置状态信息 (超级列表框1.现行选中项, 1, “buff解析失败”)
    wss_断开某个连接 (局_连接ID, 真)
    返回 ()
.如果真结束

' 调试输出 (“11----”, decodeBuff (返回buff))
buff ＝ decodeBuff2 (返回buff)
JCE.set (buff)
请求结果 ＝ UTF8到文本 (JCE.get (“0.1”))
' '调试输出 (“请求结果----”, 请求结果)
.如果真 (请求结果 ≠ “请求成功”)
    窗口_置状态信息 (超级列表框1.现行选中项, 1, 请求结果)
    wss_断开某个连接 (局_连接ID, 真)
    返回 ()
.如果真结束

返回兑换结果 ＝ UTF8到文本 (JCE.get (“0.4.3”))
' 调试输出 (“返回兑换结果----”, 返回兑换结果)
窗口_置状态信息 (超级列表框1.现行选中项, 1, 返回兑换结果)
wss_断开某个连接 (局_连接ID, 真)

' 优化价格 ＝ 取文本左边 (局_商品价格, 取文本长度 (局_商品价格) － 1)
' 调试输出 (优化价格)
保存日志2 (时间_到文本 (取现行时间 (), 1) ＋ “ ” ＋ 局_Cookie ＋ “----” ＋ 局_商品名称 ＋ “----” ＋ 局_商品价格)
局_bin ＝ 文转图片P (局_商品名称 ＋ “         ” ＋ #换行符 ＋ 时间_格式化 (取现行时间 (), “yyyy年MM月dd日”, “ hh:mm:ss”, 真) ＋ #换行符 ＋ “兑换账号：” ＋ “(” ＋ 局_昵称 ＋ “)”)
剪辑板_置图片 (局_bin)
提示框 (“兑换成功,图片已复制”, , , , 1000)

' 成功返回 [0]┓
'  [0](Short):200
'  [1](Str=12):请求成功
'  [3](Str=47):sOrderId_1663_9187_1199646113837_1732817910_703
'  [4]┓
'  [1](Short):9187
'  [2](Byte):20
'  [3](Str=38):兑换奖品：荣耀勋章礼包(小)
'  [0]┛
'  [0(1)]┛
'  [8](Short):5000
'  [9](Map,0):
'  [10](Map,0):
'  [2](Zero):0
'  [3](Str=0):
'  [4](Zero):0
'  [5](Zero):0
'  [6](Str=0):

' =========失败返回
'  0]┓
'  [0](Short):9106
'  [1](Str=61):购买精英宝典商品，才能开启精英宝典特权哦~
'  [3](Str=0):
'  [5]┓
'  [0](Byte):3
'  [1](Map,3):
'  [0](Str=9):minAmount
'  [1](Str=1):1
'  [0(1)](Str=7):propIds
'  [1(1)](Str=7):1285501
'  [0(2)](Str=9):maxAmount
'  [1(2)](Str=5):99999
'  [2](Str=61):购买精英宝典商品，才能开启精英宝典特权哦~
'  [3](Str=0):
'  [4](Str=0):
'  [0(1)]┛
'  [0(1)]┛
'  [8](Short):5000
'  [9](Map,0):
'  [10](Map,0):
'  [2](Zero):0
'  [3](Str=0):
'  [4](Zero):0
'  [5](Zero):0
'  [6](Str=0):

.子程序 _图片框1_被双击, 逻辑型
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型

.如果真 (图片框1.图片 ＝ {  })
    提示框 (“请先生成后，再复制二维码”, , , , 1000)
    返回 ()
.如果真结束

剪辑板_置图片 (图片框1.图片)
提示框 (“二维码已复制”, , , , 1000)

.子程序 _超级列表框1_被双击, 逻辑型
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型

启动线程 (&子程序标签更新, , )

.子程序 子程序标签更新
.局部变量 局_文本, 文本型
.局部变量 返回昵称, 文本型
.局部变量 返回积分, 文本型
.局部变量 返回手机, 文本型
.局部变量 返回err0, 文本型
.局部变量 返回渠道, 文本型

.如果真 (查积分记录_单线程 (返回昵称, 返回积分, 返回手机, 返回渠道, 返回err0) ＝ 假)
    标签_昵称.标题 ＝ 返回err0
    返回 ()
.如果真结束

标签_昵称.标题 ＝ “积分：” ＋ 返回积分
标签_状态.标题 ＝ “游戏名称：” ＋ 返回昵称 ＋ #换行符 ＋ “渠道：” ＋ 返回渠道 ＋ #换行符 ＋ “手机：” ＋ 返回手机
超级列表框1.置标题 (超级列表框1.现行选中项, 3, 返回昵称)
超级列表框1.置标题 (超级列表框1.现行选中项, 5, “操作成功”)

.子程序 查积分记录_单线程, 逻辑型
.参数 返回昵称, 文本型, 参考
.参数 返回积分, 文本型, 参考
.参数 返回手机, 文本型
.参数 返回渠道, 文本型, 参考, 苹果  和安卓 
.参数 返回err0, 文本型, 参考
.局部变量 局_Cookie, 文本型
.局部变量 yyuid, 文本型
.局部变量 局_连接ID, 整数型
.局部变量 err0, 文本型
.局部变量 basestr, 文本型
.局部变量 返回jsonstr, 文本型
.局部变量 JSON, 类_json
.局部变量 局_积分, 文本型
.局部变量 返回buff, 字节集
.局部变量 buff, 字节集
.局部变量 JCE, 类_JCE解包
.局部变量 返回类型, 字节型
.局部变量 返回IP, 文本型
.局部变量 返回端口, 整数型
.局部变量 i, 整数型
.局部变量 D理类型, 整数型

局_Cookie ＝ 超级列表框1.取标题 (超级列表框1.现行选中项, 1)
yyuid ＝ 文本_取右边 (删全部空 (局_Cookie), “yyuid=”)
.如果真 (取文本长度 (yyuid) ≠ 13)
    yyuid ＝ 文本_取出中间文本 (删全部空 (局_Cookie), “yyuid=”, “;”)
.如果真结束

.计次循环首 (10, i)
    .如果 (选择框_D理.选中 ＝ 真)
        D理类型 ＝ 2
        GetIP (返回IP, 返回端口)
    .否则
        D理类型 ＝ 0
    .如果结束

    窗口_置状态信息 (超级列表框1.现行选中项, 1, 返回IP ＋ “->连接【” ＋ 到文本 (i) ＋ “】”)
    局_连接ID ＝ wss_连接 (全wss_url, , D理类型, 返回IP, 返回端口, , , , , &wb消息到达, &wb连接成功, &wb连接断开)
    .如果 (局_连接ID ＞ 0)
        跳出循环 ()

    .否则
        窗口_置状态信息 (超级列表框1.现行选中项, 1, “代理失败，正在重连...”)
    .如果结束

    系统_处理事件 ()
.计次循环尾 ()
.如果真 (局_连接ID ＝ 0)
    窗口_置状态信息 (超级列表框1.现行选中项, 1, “wss连接失败”)
    返回 (假)
.如果真结束


' #常量outerActId ,,“9504”
basestr ＝ 生成查询游戏名 (yyuid, 局_Cookie, “9504”)
.如果真 (WS发送bin (局_连接ID, 编码_BASE64解码 (basestr)) ＝ 假)
    返回err0 ＝ “wss发送消息失败”
    wss_断开某个连接 (局_连接ID, 真)
    返回 (假)
.如果真结束
.如果真 (哈希取出数据指针_buff解析 (局_连接ID, 返回buff) ＝ 假)
    返回err0 ＝ “buff解析失败”
    wss_断开某个连接 (局_连接ID, 真)
    返回 (假)
.如果真结束


' '调试输出 (decodeBuff (返回buff))
' 调试输出 (“查询游戏---”, decodeBuff (返回buff))
buff ＝ decodeBuff2 (返回buff)
JCE.set (buff)
返回昵称 ＝ UTF8到文本 (JCE.get (“0.2.4.1”))
返回渠道 ＝ UTF8到文本 (JCE.get (“0.2.4.2”))
返回手机 ＝ UTF8到文本 (JCE.get (“0.2.4.3”))
buff ＝ {  }
basestr ＝ 生成查询积分 (yyuid, 局_Cookie, #常量sid)
.如果真 (WS发送bin (局_连接ID, 编码_BASE64解码 (basestr)) ＝ 假)
    返回err0 ＝ “wss发送消息失败”
    wss_断开某个连接 (局_连接ID, 真)
    返回 (假)

.如果真结束
.如果真 (哈希取出数据指针_buff解析 (局_连接ID, 返回buff) ＝ 假)
    返回err0 ＝ “buff解析失败”
    wss_断开某个连接 (局_连接ID, 真)
    返回 (假)
.如果真结束


buff ＝ decodeBuff2 (返回buff)
JCE.set (buff)
JCE.get (“0.6”, 返回类型)
' '调试输出 (“返回类型---”, 返回类型)
.如果真 (返回类型 ＝ 1)
    返回积分 ＝ 到文本 (JCE.getShort (“0.6”))
.如果真结束
.如果真 (返回类型 ＝ 0)
    返回积分 ＝ 到文本 (JCE.getByte (“0.6”))
.如果真结束
.如果真 (返回类型 ＝ 12)
    返回积分 ＝ 到文本 (JCE.getByte (“0.6”))
.如果真结束


' 调试输出 (“返回积分---”, 返回积分)
wss_断开某个连接 (局_连接ID, 真)
返回 (真)

.子程序 _标签_状态_被双击, 逻辑型
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型

剪辑板_置图片 (快照 (标签_状态.取窗口句柄 (), , ))
提示框 (“图片已复制”, , , , 1000)

.子程序 _窗口1_可否被关闭, 逻辑型

.如果 (信息框 (“确定要退出程序吗?”, #信息图标 ＋ #确认钮 ＋ #取消钮, , ) ＝ #确认钮)
    返回 (真)
.否则
    返回 (假)
.如果结束


.子程序 _窗口1_将被销毁

Gdip结束 ()
数据写出列表 ()
哈希清空 ()
配置_保存_易语言组件 (窗口1)

.子程序 _按钮_结算_被单击

启动线程 (&子程序结算, , )

.子程序 子程序结算
.局部变量 str, 文本型
.局部变量 局_1, 文本型, , "0"
.局部变量 局_F, 文本型, , "0"
.局部变量 N, 整数型
.局部变量 局_NUM, 整数型
.局部变量 局_日志路径, 文本型
.局部变量 局_标识, 文本型, , "0"
.局部变量 局_文本1, 文本型
.局部变量 局_文本2, 文本型
.局部变量 局_返回余额, 整数型

局_日志路径 ＝ 取运行目录 () ＋ “\” ＋ 时间_格式化 (取现行时间 (), “MM.dd-”) ＋ “兑换日志.log”
str ＝ 编码_Utf8到Ansi (读入文件 (局_日志路径))
.如果真 (str ＝ “”)
    提示框 (“生成日志后，再结算金额...”, , , , 1000)
    返回 ()
.如果真结束

文本_取中间_批量 (str, “---------------------------------------------已结算----以上合计金额：”, #换行符, 局_标识)
.如果真 (取数组成员数 (局_标识) ＜ 1)
    ' 提示框 (“生成日志后，再结算金额”, , , , 2000)
    局_F ＝ 分割文本 (str, #换行符, )
    .计次循环首 (取数组成员数 (局_F), N)
        局_返回余额 ＝ 子程序处理余额 (局_F [N])
        _原子运算 (局_NUM, 局_返回余额)
        系统_处理事件 ()
    .计次循环尾 ()
    保存日志2 (#换行符 ＋ #换行符 ＋ “---------------------------------------------已结算----以上合计金额：” ＋ 到文本 (局_NUM) ＋ #换行符 ＋ #换行符)
    提示框 (“结算完成：” ＋ 到文本 (局_NUM), , , , 2000)
    返回 ()
.如果真结束


.如果真 (局_标识 [取数组成员数 (局_标识)] ≠ “”)
    局_文本1 ＝ “---------------------------------------------已结算----以上合计金额：” ＋ 局_标识 [取数组成员数 (局_标识)]
    局_1 ＝ 分割文本 (str, 局_文本1, )
    局_文本2 ＝ 局_1 [取数组成员数 (局_1)]
    .如果真 (局_文本2 ≠ “”)
        局_F ＝ 分割文本 (局_文本2, #换行符, )
        .计次循环首 (取数组成员数 (局_F), N)
            局_返回余额 ＝ 子程序处理余额 (局_F [N])
            _原子运算 (局_NUM, 局_返回余额)
            系统_处理事件 ()
        .计次循环尾 ()
        .如果真 (局_NUM ≤ 0)
            提示框 (“未达到结算条件！”, , , , 2000)
            返回 ()
        .如果真结束

        保存日志2 (#换行符 ＋ #换行符 ＋ “---------------------------------------------已结算----以上合计金额：” ＋ 到文本 (局_NUM) ＋ #换行符 ＋ #换行符)
        清除数组 (局_1)
        清除数组 (局_F)
        提示框 (“结算完成：” ＋ 到文本 (局_NUM), , , , 2000)
        返回 ()
    .如果真结束

    提示框 (“未达到结算条件！”, , , , 2000)

.如果真结束


.子程序 子程序处理余额, 整数型
.参数 参_数据, 文本型
.局部变量 局_F, 文本型, , "0"
.局部变量 N, 整数型

局_F ＝ 分割文本 (参_数据, “----”, )
.如果真 (取数组成员数 (局_F) ＝ 4)
    返回 (到整数 (局_F [4]))
.如果真结束

返回 (0)

.子程序 _按钮_统计_被单击
.局部变量 str, 文本型
.局部变量 局_日志路径, 文本型
.局部变量 局_F, 文本型, , "0"
.局部变量 P, 整数型
.局部变量 局_返回余额, 整数型
.局部变量 局_NUM, 整数型

局_日志路径 ＝ 取运行目录 () ＋ “\” ＋ 时间_格式化 (取现行时间 (), “MM.dd-”) ＋ “兑换日志.log”
str ＝ 编码_Utf8到Ansi (读入文件 (局_日志路径))
局_F ＝ 分割文本 (str, #换行符, )
.计次循环首 (取数组成员数 (局_F), P)
    局_返回余额 ＝ 子程序处理余额 (局_F [P])
    _原子运算 (局_NUM, 局_返回余额)
    系统_处理事件 ()
.计次循环尾 ()
保存日志2 (#换行符 ＋ #换行符 ＋ “*************************************************今日统计总金额：” ＋ 到文本 (局_NUM) ＋ #换行符 ＋ #换行符)
信息框 (时间_格式化 (取现行时间 (), “MM.dd-”) ＋ “统计总金额：” ＋ 到文本 (局_NUM), 0, , )


.子程序 判断重复列表
.参数 参_内容, 文本型
.局部变量 局_文本, 文本型
.局部变量 局_用户, 文本型
.局部变量 _索引, 整数型
.局部变量 局_索引2, 整数型
.局部变量 P, 整数型

_索引 ＝ 超级列表框1.查找表项 (参_内容, , , 1)
.如果 (_索引 ＝ -1)
    局_索引2 ＝ 超级列表框1.插入表项 (, , , , , )
    超级列表框1.置标题 (局_索引2, 0, 到文本 (局_索引2 ＋ 1))
    超级列表框1.置标题 (局_索引2, 1, 参_内容)
    超级列表框1.置状态图片 (局_索引2, 1)

.否则
    超级列表框1.置标题 (_索引, 1, 参_内容)
.如果结束


.子程序 保存日志
.参数 参_str, 文本型
.局部变量 filename, 文本型
.局部变量 保存到文件, 鱼刺类_输出文本

filename ＝ 时间_格式化 (取现行时间 (), “MM.dd-”) ＋ “流程日志”
保存到文件.写文本行 (参_str, filename, 取运行目录 () ＋ “\”, “.log”)

.子程序 保存日志2
.参数 参_str, 文本型
.局部变量 filename, 文本型
.局部变量 保存到文件, 鱼刺类_输出文本

filename ＝ 时间_格式化 (取现行时间 (), “MM.dd-”) ＋ “兑换日志”
保存到文件.写文本行 (参_str, filename, 取运行目录 () ＋ “\”, “.log”)
保存到文件.关闭所有文件占用 ()

.子程序 数据写入列表, , , APP
.局部变量 文件号, 整数型
.局部变量 文件名, 文本型
.局部变量 状态数组, 文本型, , "0"
.局部变量 文本数组, 文本型, , "0"
.局部变量 M, 整数型
.局部变量 N, 整数型
.局部变量 局_状态图片, 整数型

文件名 ＝ 全目录临时 ＋ “\临时ck.txt”
文件号 ＝ 打开文件 (文件名, , )
移到文件首 (文件号)
处理事件 ()
.判断循环首 (取反 (是否在文件尾 (文件号, 真)))
    重定义数组 (状态数组, 假, 0)
    重定义数组 (文本数组, 假, 0)
    状态数组 ＝ 分割文本 (读入一行 (文件号), “$”, )
    .如果真 (取数组成员数 (状态数组) ≥ 2)
        .如果 (状态数组 [1] ＝ “x”)
            局_状态图片 ＝ 1
        .否则
            局_状态图片 ＝ 0
        .如果结束
        文本数组 ＝ 分割文本 (状态数组 [2], “|||”, )
        M ＝ 超级列表框1.插入表项 (, , , , , )

        超级列表框1.置状态图片 (M, 局_状态图片)
        .计次循环首 (取数组成员数 (文本数组), N)
            系统_处理事件 ()
            超级列表框1.置标题 (M, N － 1, 文本数组 [N])
            .如果真 (N ＝ 20)  ' 填充满一页就手动重画
                超级列表框1.禁止重画 ()
            .如果真结束
            .如果真 (N ％ 100 ＝ 0)  ' 每100次插入 换一次姿势 ``233333
                超级列表框1.允许重画 ()
                超级列表框1.发送信息 (277, 7, 0)  ' 显示最后一行
                超级列表框1.禁止重画 ()
            .如果真结束

        .计次循环尾 ()



    .如果真结束

.判断循环尾 ()
关闭文件 (文件号)
超级列表框1.允许重画 ()  ' 恢复自动重画
超级列表框1.发送信息 (277, 7, 0)  ' 显示最后一行

.子程序 数据写出列表, , , APP
.局部变量 文件名, 文本型
.局部变量 读入账号, 文本型
.局部变量 n, 整数型
.局部变量 临时文件名, 文本型
.局部变量 文件号, 整数型
.局部变量 文本, 文本型
.局部变量 空, 字节集
.局部变量 局_状态图片, 文本型

临时文件名 ＝ 全目录临时 ＋ “\临时ck.txt”
文件号 ＝ 打开文件 (临时文件名, 4, )
_处理事件 ()
文本 ＝ “”

.计次循环首 (超级列表框1.取表项数 (), n)
    系统_处理事件 ()
    .判断开始 (超级列表框1.取当前状态图片 (n － 1) ＝ 1)
        局_状态图片 ＝ “x”

    .默认
        局_状态图片 ＝ “y”
    .判断结束

    文本 ＝ 局_状态图片 ＋ “$” ＋ 超级列表框1.取标题 (n － 1, 0) ＋ “|||” ＋ 超级列表框1.取标题 (n － 1, 1) ＋ “|||” ＋ 超级列表框1.取标题 (n － 1, 2) ＋ “|||” ＋ 超级列表框1.取标题 (n － 1, 3) ＋ “|||” ＋ 超级列表框1.取标题 (n － 1, 4) ＋ “|||” ＋ 超级列表框1.取标题 (n － 1, 5) ＋ “|||” ＋ 超级列表框1.取标题 (n － 1, 6)

    写文本行 (文件号, 文本)
.计次循环尾 ()
关闭文件 (文件号)

.子程序 _标签_昵称_被双击, 逻辑型, , https://livelink.qq.com/act/a20200527midgroupage/pc/?sig=0d29d14f3e9bdb05f7f091340952054f&faceUrl=https%3A%2F%2Fapic.douyucdn.cn%2Fupload%2Favatar%2Fdefault%2F15_middle.jpg&code=wW6EhNWpLEVNHKEMfB9vaEWKPdowIikRqFJI0IKm%2BcxGa%2B8OEPhyF%2BZ58W80CrGigCGtLddIofBcnRkylmccKw%3D%3D&redirectUrl=null&t=1661433534&livePlatId=douyu&nickName=%E7%94%A8%E6%88%B702435853&actId=2811&gameIdList=cjm
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型
.局部变量 str, 文本型, , , 昵称：null <-> 余额：null

str ＝ 删首尾空 (文本_取出中间文本 (标签_昵称.标题, “账号：”, “<->”))
置剪辑板文本 (str)
提示框 (str ＋ “   已复制”, , , , 1000)

.子程序 _图片框2_被双击, 逻辑型
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型

' 剪辑板_置图片 (图片框2.图片)
提示框 (“图片已复制”, , , , 1000)

.子程序 __扫码框_鼠标左键被按下, 逻辑型
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型

窗口1.发送信息 (161, 2, 0)

.子程序 _粘贴CK_被选择
.局部变量 文本数组, 文本型, , "0"
.局部变量 计次1, 整数型
.局部变量 计次2, 整数型
.局部变量 临时数组, 文本型, , "0"
.局部变量 索引, 整数型
.局部变量 i, 文本型
.局部变量 总数数组, 文本型, , "0"
.局部变量 内容, 文本型
.局部变量 X, 整数型
.局部变量 状态数组, 文本型, , "0"
.局部变量 N, 整数型
.局部变量 M, 整数型
.局部变量 判断数据, 文本型

' 下面的是粘贴根据“----“判断是否是一条或者两条数据
i ＝ 取剪辑板文本 ()
.如果真 (i ＝ “”)
    返回 ()
.如果真结束

文本数组 ＝ 分割文本 (i, #换行符, )
.计次循环首 (取数组成员数 (文本数组), X)
    判断数据 ＝ 文本数组 [X]
    .如果真 (判断数据 ≠ “”)
        状态数组 ＝ 分割文本 (判断数据, “----”, )
        M ＝ 超级列表框1.插入表项 (, , , , , )
        超级列表框1.置状态图片 (M, 1)
        .计次循环首 (取数组成员数 (状态数组), N)
            超级列表框1.置标题 (M, 0, 到文本 (M ＋ 1))
            超级列表框1.置标题 (M, N, 状态数组 [N])
        .计次循环尾 ()
    .如果真结束

    系统_处理事件 ()
.计次循环尾 ()
超级列表框1.允许重画 ()  ' 恢复自动重画
超级列表框1.发送信息 (277, 7, 0)  ' 显示最后一行

清除数组 (文本数组)
返回 ()

.子程序 _搜索游戏名_被选择
.局部变量 索引EX, 整数型
.局部变量 str, 文本型

输入框 (“查找包含游戏名的字符”, “查找游戏名”, , str, , )
.如果真 (str ＝ “”)
    返回 ()
.如果真结束

索引EX ＝ 超级列表框1.查找表项 (str, , 假, 3)
.如果真 (索引EX ≠ -1)
    超级列表框1.保证显示 (索引EX)
    超级列表框1.选择表项 (索引EX)
.如果真结束

返回 ()

.子程序 _搜索状态_被选择
.局部变量 索引EX, 整数型
.局部变量 str, 文本型

输入框 (“查找包含状态的字符”, “查找状态”, , str, , )
.如果真 (str ＝ “”)
    返回 ()
.如果真结束

索引EX ＝ 超级列表框1.查找表项 (str, , 假, 5)
.如果真 (索引EX ≠ -1)
    超级列表框1.保证显示 (索引EX)
    超级列表框1.选择表项 (索引EX)
.如果真结束

返回 ()


.子程序 子程序检测账号E
.参数 参_索引, 整数型
.局部变量 局_Cookie, 文本型
.局部变量 time, 文本型
.局部变量 userNick, 文本型
.局部变量 str, 文本型
.局部变量 yyuid, 文本型
.局部变量 返回nick, 文本型

全检车临界.进入 ()
局_Cookie ＝ 超级列表框1.取标题 (参_索引, 1)
yyuid ＝ 文本_取右边 (删全部空 (局_Cookie), “yyuid=”)
.如果真 (取文本长度 (yyuid) ≠ 13)
    yyuid ＝ 文本_取出中间文本 (删全部空 (局_Cookie), “yyuid=”, “;”)
.如果真结束

全检车临界.退出 ()
.如果 (hy获取昵称 (yyuid, 局_Cookie, 返回nick) ＝ 真)
    窗口_置状态信息 (参_索引, 1, “账号正常”)
.否则
    .如果 (寻找文本 (返回nick, “请先登录”, , 假) ≠ -1)
        窗口_置状态信息 (参_索引, 1, “请先登录！”)

    .否则
        窗口_置状态信息 (参_索引, 1, 返回nick)
    .如果结束

.如果结束

'  time ＝ 时间_取现行时间戳 ()
'  str ＝ 到文本 (网页_访问_对象 (“https://l.huya.com/udb_web/udbport2.php?m=HuyaLogin&do=checkLogin&callback=jQuery112405809542307638578_” ＋ time ＋ “&_=” ＋ time, , , 局_Cookie, , “Host: l.huya.com” ＋ #换行符 ＋ “Connection: keep-alive” ＋ #换行符 ＋ “sec-ch-ua: ” ＋ #引号 ＋ “Not_A Brand” ＋ #引号 ＋ “;v=” ＋ #引号 ＋ “8” ＋ #引号 ＋ “, ” ＋ #引号 ＋ “Chromium” ＋ #引号 ＋ “;v=” ＋ #引号 ＋ “120” ＋ #引号 ＋ “, ” ＋ #引号 ＋ “Google Chrome” ＋ #引号 ＋ “;v=” ＋ #引号 ＋ “120” ＋ #引号 ＋ “” ＋ #换行符 ＋ “sec-ch-ua-mobile: ?0” ＋ #换行符 ＋ “User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36” ＋ #换行符 ＋ “sec-ch-ua-platform: ” ＋ #引号 ＋ “Windows” ＋ #引号 ＋ “” ＋ #换行符 ＋ “Accept: */*” ＋ #换行符 ＋ “Sec-Fetch-Site: same-site” ＋ #换行符 ＋ “Sec-Fetch-Mode: no-cors” ＋ #换行符 ＋ “Sec-Fetch-Dest: script” ＋ #换行符 ＋ “Referer: https://zt.huya.com/”))
'  调试输出 (str)
'  userNick ＝ 文本_取出中间文本 (str, “userNick” ＋ #引号 ＋ “:” ＋ #引号, #引号)


.子程序 _一键检测账号_被选择
.局部变量 p, 整数型

.计次循环首 (超级列表框1.取表项数 (), p)
    .如果真 (超级列表框1.取当前状态图片 (p － 1) ＝ 1)
        启动线程 (&子程序检测账号E, p － 1, )
        程序_延时 (100)
    .如果真结束

.计次循环尾 ()

.子程序 _全选_被选择
.局部变量 P, 整数型

.计次循环首 (超级列表框1.取表项数 (), P)
    系统_处理事件 ()
    超级列表框1.置状态图片 (P － 1, 1)
.计次循环尾 ()

.子程序 _反选_被选择
.局部变量 P, 整数型

.计次循环首 (超级列表框1.取表项数 (), P)
    系统_处理事件 ()
    .如果 (超级列表框1.取当前状态图片 (P － 1) ＝ 0)
        超级列表框1.置状态图片 (P － 1, 1)

    .否则
        超级列表框1.置状态图片 (P － 1, 0)
    .如果结束

.计次循环尾 ()


.子程序 _一键获取游戏名_被选择
.局部变量 p, 整数型

.计次循环首 (超级列表框1.取表项数 (), p)
    .如果真 (超级列表框1.取当前状态图片 (p － 1) ＝ 1)
        启动线程 (&查询游戏昵称, p － 1, )
        程序_延时 (10)
    .如果真结束

.计次循环尾 ()

.子程序 查询游戏昵称
.参数 索引EX, 整数型
.局部变量 局_Cookie, 文本型
.局部变量 yyuid, 文本型
.局部变量 str, 文本型
.局部变量 局_连接ID, 整数型
.局部变量 err0, 文本型
.局部变量 basestr, 文本型
.局部变量 返回数据指针, 长整数型
.局部变量 返回name, 文本型
.局部变量 bool, 逻辑型
.局部变量 返回jsonstr, 文本型
.局部变量 JSON, 类_json
.局部变量 返回buff, 字节集
.局部变量 buff, 字节集
.局部变量 JCE, 类_JCE解包
.局部变量 返回IP, 文本型
.局部变量 返回端口, 整数型
.局部变量 i, 整数型
.局部变量 D理类型, 整数型
.局部变量 局_换绑时间, 文本型

全读写锁.读进入 ()
局_Cookie ＝ 超级列表框1.取标题 (索引EX, 1)
yyuid ＝ 文本_取右边 (删全部空 (局_Cookie), “yyuid=”)
.如果真 (取文本长度 (yyuid) ≠ 13)
    yyuid ＝ 文本_取出中间文本 (删全部空 (局_Cookie), “yyuid=”, “;”)
.如果真结束

全读写锁.读退出 ()
' 获取昵称方法1-wss获取-------------
.' 计次循环首 (10, i)
    .' 如果 (选择框_D理.选中 ＝ 真)
        ' D理类型 ＝ 2
        ' GetIP (返回IP, 返回端口)
    .否则
        ' D理类型 ＝ 0
    .如果结束

    ' 窗口_置状态信息 (索引EX, 1, 返回IP ＋ “->连接【” ＋ 到文本 (i) ＋ “】”)
    ' 局_连接ID ＝ wss_连接 (全wss_url, , D理类型, 返回IP, 返回端口, , , , , &wb消息到达, &wb连接成功, &wb连接断开)
    .' 如果 (局_连接ID ＞ 0)
        ' 跳出循环 ()

    .否则
        ' 窗口_置状态信息 (索引EX, 1, “代理失败，正在重连...”)
    .如果结束

    ' 系统_处理事件 ()
.' 计次循环尾 ()
.' 如果真 (局_连接ID ＝ 0)
    ' 窗口_置状态信息 (索引EX, 1, “wss连接失败”)
    ' 返回 ()
.如果真结束


' basestr ＝ 生成查询游戏名 (yyuid, 局_Cookie, “9504”)
.' 如果真 (WS发送bin (局_连接ID, 编码_BASE64解码 (basestr)) ＝ 假)
    ' 窗口_置状态信息 (索引EX, 1, “wss发送消息失败”)
    ' wss_断开某个连接 (局_连接ID, 真)
    ' 返回 ()
.如果真结束
.' 如果真 (哈希取出数据指针_buff解析 (局_连接ID, 返回buff) ＝ 假)
    ' 窗口_置状态信息 (索引EX, 1, “buff解析失败”)

    ' wss_断开某个连接 (局_连接ID, 真)
    ' 返回 ()
.如果真结束

' 调试输出 (取程序名称 (1), decodeBuff (返回buff))

' buff ＝ decodeBuff2 (返回buff)
' JCE.set (buff)
.' 如果真 (JCE.getShort (“0.0”) ≠ 200)
    ' 窗口_置状态信息 (索引EX, 1, “查询昵称失败”)
    ' wss_断开某个连接 (局_连接ID, 真)
    ' 返回 ()
.如果真结束


' 返回name ＝ UTF8到文本 (JCE.get (“0.2.4.1”))
.' 如果 (返回name ≠ “”)
    ' 窗口_置信息2 (索引EX, 1, 返回name)
.否则
    ' 窗口_置信息2 (索引EX, 1, “NULL”)
.如果结束

' wss_断开某个连接 (局_连接ID, 真)
' 窗口_置状态信息 (索引EX, 1, “操作完成”)

' 获取昵称方法2-http获取-------------
.如果 (查询绑定的游戏名 (局_Cookie, 返回name) ＝ 真)
    窗口_置信息2 (索引EX, 1, 返回name)
.否则
    窗口_置信息2 (索引EX, 1, “NULL”)
.如果结束


.子程序 查询绑定的游戏名, 逻辑型
.参数 参_Cookie, 文本型
.参数 返回nick, 文本型, 参考
.局部变量 str, 文本型
.局部变量 yyjson, json对象
.局部变量 userNick, 文本型
.局部变量 str_new, 文本型

str ＝ 编码_Utf8到Ansi (网页_访问_对象 (“https://l.huya.com/udb_web/udbport2.php?m=HuyaLogin&do=checkLogin&callback=jQuery1124008854290544847743_” ＋ 时间_取现行时间戳 () ＋ “&_=” ＋ 时间_取现行时间戳 (), , , 参_Cookie, , “Host: l.huya.com” ＋ #换行符 ＋ “Connection: keep-alive” ＋ #换行符 ＋ “Pragma: no-cache” ＋ #换行符 ＋ “Cache-Control: no-cache” ＋ #换行符 ＋ “sec-ch-ua-platform: ” ＋ #引号 ＋ “Windows” ＋ #引号 ＋ “” ＋ #换行符 ＋ “User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36” ＋ #换行符 ＋ “sec-ch-ua: ” ＋ #引号 ＋ “Not(A:Brand” ＋ #引号 ＋ “;v=” ＋ #引号 ＋ “99” ＋ #引号 ＋ “, ” ＋ #引号 ＋ “Google Chrome” ＋ #引号 ＋ “;v=” ＋ #引号 ＋ “133” ＋ #引号 ＋ “, ” ＋ #引号 ＋ “Chromium” ＋ #引号 ＋ “;v=” ＋ #引号 ＋ “133” ＋ #引号 ＋ “” ＋ #换行符 ＋ “sec-ch-ua-mobile: ?0” ＋ #换行符 ＋ “Accept: */*” ＋ #换行符 ＋ “Sec-Fetch-Site: same-site” ＋ #换行符 ＋ “Sec-Fetch-Mode: no-cors” ＋ #换行符 ＋ “Sec-Fetch-Dest: script” ＋ #换行符 ＋ “Referer: https://zt.huya.com/” ＋ #换行符 ＋ “Accept-Language: zh-CN,zh;q=0.9”))
' '调试输出 (取程序名称 (1), str)
str_new ＝ 文本_取出中间文本 (str, “(”, “)”)
yyjson.清空 ()
yyjson.解析 (str_new)
userNick ＝ yyjson.取文本 (“userNick”)
.如果真 (userNick ≠ “”)
    返回nick ＝ userNick
    返回 (真)
.如果真结束


返回 (假)
' uid=1199646116592
' userName=hy_272672763
' userNick=鸡杂马烧麦
' jQuery1124008854290544847743_1769827959574({"isLogined":true,"userName":"hy_272672763","uid":"1199646116592","userNick":"\u9e21\u6742\u9a6c\u70e7\u9ea6","userLogo":null,"isHuya":true})


.子程序 _按钮_启动_被单击

.判断开始 (按钮_启动.标题 ＝ “批量兑换商品”)
    .如果真 (超级列表框1.取表项数 () ≤ 0)
        返回 ()
    .如果真结束

    按钮_启动.禁止 ＝ 真
    全工作中 ＝ 真
    启动线程 (&工作线程, , )
    .' 如果真 (线程_创建 (&工作线程) ＝ 假)
        ' 按钮_启动.禁止 ＝ 假
        ' 返回 ()
    .如果真结束

.判断 (按钮_启动.标题 ＝ “停止兑换商品”)
    按钮_启动.禁止 ＝ 真
    按钮_启动.标题 ＝ “停 止 中...”
    全工作中 ＝ 假
    精英线程.销毁 ()
    精英线程.销毁 ()
    返回 ()
.默认

.判断结束



.子程序 工作线程
.局部变量 bool, 逻辑型
.局部变量 int, 整数型
.局部变量 任务数, 整数型

全定时数 ＝ 0
按钮_启动.标题 ＝ “兑换中...”
状态条1.置文本 (0, “线程启动中...”)
' bool ＝ 精英线程.创建 (20, 20)
.' 如果真 (bool ＝ 假)
    ' 状态条1.置文本 (0, “初始化工作线程池失败！”)
    ' 按钮_启动.标题 ＝ “批量兑换商品”
    ' 按钮_启动.禁止 ＝ 假
    ' 返回 ()
.如果真结束

' 全工作中 ＝ 真
' 按钮_启动.标题 ＝ “停止兑换商品”
' 按钮_启动.禁止 ＝ 假

' int ＝ 0
.' 判断循环首 (全工作中 ＝ 真)
    ' 任务数 ＝ 精英线程.取_执行线程数 () ＋ 精英线程.取_队列任务数 ()
    ' 任务数 ＝ 精英线程.取_最大线程容量 () － 任务数
    .' 如果真 (任务数 ＞ 0)
        .' 如果真 (超级列表框1.取当前状态图片 (int) ＝ 1)
            ' 精英线程.投递任务 (&线程子程序, int)
        .如果真结束

        ' int ＝ int ＋ 1
    .如果真结束

    .' 如果真 (int ≥ 超级列表框1.取表项数 ())
        ' 跳出循环 ()
    .如果真结束

    ' ' _延迟 (1)
.' 判断循环尾 ()
.' 循环判断首 ()
    ' 程序_延时 (300)
.' 循环判断尾 (精英线程.取_是否完全空闲 () ＝ 假)
' 状态条1.置文本 (0, “正在销毁工作线程池。。。。”)
' 精英线程.销毁 ()
' 状态条1.置文本 (0, “销毁工作线程池成功！”)
' 按钮_启动.标题 ＝ “批量兑换商品”
' 按钮_启动.禁止 ＝ 假
' 状态条1.置文本 (0, “执行停止完毕！”)


精英线程.创建 (&线程子程序, 到整数 (编辑框_线程数.内容))
.计次循环首 (超级列表框1.取表项数 (), int)
    .如果真 (超级列表框1.取当前状态图片 (int － 1) ＝ 1)
        精英线程.加入任务 (int － 1, )
    .如果真结束

    系统_处理事件 ()
.计次循环尾 ()
.循环判断首 ()
    程序_延时 (300)
.循环判断尾 (精英线程.等待完成 () ＝ 假)
精英线程.销毁 ()
状态条1.置文本 (0, “销毁工作线程池成功！”)
按钮_启动.标题 ＝ “批量兑换商品”
按钮_启动.禁止 ＝ 假
状态条1.置文本 (0, “执行停止完毕！”)

.子程序 线程子程序
.参数 索引E, 整数型
.局部变量 局_商品名称, 文本型
.局部变量 局_商品ID, 文本型
.局部变量 局_商品价格, 文本型
.局部变量 局_用户名, 文本型
.局部变量 yyuid, 文本型
.局部变量 局_Cookie, 文本型
.局部变量 局_连接ID, 整数型
.局部变量 err0, 文本型
.局部变量 basestr, 文本型
.局部变量 局_商品txt, 文本型
.局部变量 _F, 文本型, , "0"
.局部变量 返回jsonstr, 文本型
.局部变量 优化价格, 文本型
.局部变量 局_bin, 字节集
.局部变量 JSON, 类_json
.局部变量 返回兑换结果, 文本型
.局部变量 局_昵称, 文本型
.局部变量 返回IP, 文本型
.局部变量 i, 整数型
.局部变量 返回端口, 整数型
.局部变量 D理类型, 整数型
.局部变量 返回buff, 字节集
.局部变量 buff, 字节集
.局部变量 JCE, 类_JCE解包
.局部变量 请求结果, 文本型
.局部变量 是否代理, 逻辑型

' 全快速锁.进入读锁 ()
局_Cookie ＝ 超级列表框1.取标题 (索引E, 1)
yyuid ＝ 文本_取右边 (删全部空 (局_Cookie), “yyuid=”)
局_昵称 ＝ 超级列表框1.取标题 (索引E, 3)
局_商品txt ＝ 超级列表框1.取标题 (索引E, 4)
.如果真 (取文本长度 (yyuid) ≠ 13)
    yyuid ＝ 文本_取出中间文本 (删全部空 (局_Cookie), “yyuid=”, “;”)
.如果真结束

' 全快速锁.退出读锁 ()
.如果真 (局_商品txt ＝ “”)
    窗口_置状态信息 (索引E, 1, “请添加商品！”)
    返回 ()
.如果真结束

_F ＝ 分割文本 (局_商品txt, “一”, )
.如果真 (取数组成员数 (_F) ＜ 4)
    窗口_置状态信息 (索引E, 1, “商品格式错误”)
    返回 ()
.如果真结束

' 全快速锁.进入写锁 ()
局_商品名称 ＝ _F [1]
局_商品价格 ＝ _F [2]
局_商品ID ＝ _F [3]
' 全快速锁.退出写锁 ()
是否代理 ＝ 选择框_D理.选中
.计次循环首 (5, i)
    .如果 (是否代理)
        D理类型 ＝ 2
        GetIP (返回IP, 返回端口)

    .否则
        D理类型 ＝ 0
        返回IP ＝ “”
        返回端口 ＝ 0
    .如果结束

    窗口_置状态信息 (索引E, 1, 返回IP ＋ “->连接【” ＋ 到文本 (i) ＋ “】”)
    局_连接ID ＝ wss_连接 (全wss_url, , D理类型, 返回IP, 返回端口, , , , , &wb消息到达, &wb连接成功, &wb连接断开)
    .如果 (局_连接ID ＞ 0)
        跳出循环 ()

    .否则
        窗口_置状态信息 (索引E, 1, “代理失败，正在重连...”)
    .如果结束

    系统_处理事件 ()
.计次循环尾 ()
' 局_连接ID ＝ wss_连接 (全wss_url, , D理类型, 返回IP, 返回端口, , , , , &wb消息到达, &wb连接成功, &wb连接断开)
.如果真 (局_连接ID ＝ 0)
    窗口_置状态信息 (索引E, 1, “wss连接失败”)
    wss_断开某个连接 (局_连接ID, 真)
    返回 ()
.如果真结束

' 调试输出 (yyuid, 局_商品ID)
basestr ＝ 生成兑换商品 (yyuid, 局_Cookie, #常量sid, 局_商品ID)
.计次循环首 (5, )
    .如果真 (WS发送bin (局_连接ID, 编码_BASE64解码 (basestr)))
        .如果真 (哈希取出数据指针_buff解析 (局_连接ID, 返回buff))
            ' 调试输出 (“11----”, decodeBuff (返回buff))
            buff ＝ decodeBuff2 (返回buff)
            JCE.set (buff)
            请求结果 ＝ UTF8到文本 (JCE.get (“0.1”))
            窗口_置状态信息 (索引E, 1, 请求结果)
            .如果真 (寻找文本 (请求结果, “精英宝典”, , 假) ≠ -1)
                wss_断开某个连接 (局_连接ID, 真)
                返回 ()
            .如果真结束
            .如果真 (寻找文本 (请求结果, “奖品暂未开放兑换”, , 假) ≠ -1)
                wss_断开某个连接 (局_连接ID, 真)
                返回 ()
            .如果真结束
            .如果真 (寻找文本 (请求结果, “货币不足”, , 假) ≠ -1)
                wss_断开某个连接 (局_连接ID, 真)
                返回 ()

            .如果真结束
            .如果真 (请求结果 ＝ “请求成功”)
                返回兑换结果 ＝ UTF8到文本 (JCE.get (“0.4.3”))
                跳出循环 ()
            .如果真结束

        .如果真结束

    .如果真结束

.计次循环尾 ()
wss_断开某个连接 (局_连接ID, 真)
.如果真 (寻找文本 (请求结果, “请求成功”, , 假) ＝ -1)
    窗口_置状态信息 (索引E, 1, “失败=>” ＋ 请求结果)
    返回 ()
.如果真结束


.' 如果真 (WS发送bin (局_连接ID, 编码_BASE64解码 (basestr)) ＝ 假)
    ' 窗口_置状态信息 (索引E, 1, “wss发送消息失败”)
    ' wss_断开某个连接 (局_连接ID, 真)
    ' 返回 ()
.如果真结束
.' 如果真 (哈希取出数据指针_buff解析 (局_连接ID, 返回buff) ＝ 假)
    ' 窗口_置状态信息 (索引E, 1, “buff解析失败”)
    ' wss_断开某个连接 (局_连接ID, 真)
    ' 返回 ()
.如果真结束


' ' ’调试输出 (“11----”, decodeBuff (返回buff))
' buff ＝ decodeBuff2 (返回buff)
' JCE.set (buff)
' 请求结果 ＝ UTF8到文本 (JCE.get (“0.1”))
' ' 调试输出 (“请求结果----”, 请求结果)
.' 如果真 (请求结果 ≠ “请求成功”)
    ' 窗口_置状态信息 (索引E, 1, 请求结果)
    ' wss_断开某个连接 (局_连接ID, 真)
    ' 返回 ()
.如果真结束

' 返回兑换结果 ＝ UTF8到文本 (JCE.get (“0.4.3”))
' 调试输出 (“返回兑换结果----”, 返回兑换结果)
窗口_置状态信息 (索引E, 1, “兑换成功：” ＋ 返回兑换结果)
wss_断开某个连接 (局_连接ID, 真)
全快速锁.进入写锁 ()
优化价格 ＝ 取文本左边 (局_商品价格, 取文本长度 (局_商品价格) － 1)
保存日志2 (时间_到文本 (取现行时间 (), 1) ＋ “ ” ＋ 局_Cookie ＋ “----” ＋ 局_商品名称 ＋ “----” ＋ 优化价格)
局_bin ＝ 文转图片P (局_商品名称 ＋ “         ” ＋ #换行符 ＋ 时间_格式化 (取现行时间 (), “yyyy年MM月dd日”, “ hh:mm:ss”, 真) ＋ #换行符 ＋ “兑换账号：” ＋ “(” ＋ 局_昵称 ＋ “)”)
写到文件_ (全PIC ＋ “\” ＋ 局_昵称 ＋ “_” ＋ 局_商品名称 ＋ “.png”, 局_bin)
全快速锁.退出写锁 ()


.子程序 Getcsrf_token222, 文本型
.参数 参_Cookie, 文本型
.局部变量 局_文本, 文本型
.局部变量 局_CCK, 文本型
.局部变量 局_F, 文本型, , "0"
.局部变量 str, 文本型
.局部变量 返回CK, 文本型
.局部变量 csrf_token, 文本型

局_CCK ＝ 参_Cookie
str ＝ 到文本 (网页_访问_对象 (“https://www.douyu.com/japi/carnival/nc/common/generateCsrf”, 1, , 局_CCK, 返回CK, ))
csrf_token ＝ 文本_取出中间文本 (返回CK, “cvl_csrf_token=”, “;”)
返回 (csrf_token)

.子程序 _开通精英宝典30_被选择

启动线程 (&子程序精英宝典30, , )

.子程序 子程序精英宝典30
.局部变量 局_Cookie, 文本型
.局部变量 yyuid, 文本型
.局部变量 局_连接ID, 整数型
.局部变量 err0, 文本型
.局部变量 basestr, 文本型
.局部变量 返回jsonstr, 文本型
.局部变量 JSON, 类_json
.局部变量 返回充值ID, 文本型
.局部变量 返回文本, 文本型
.局部变量 返回付款码, 文本型
.局部变量 局_充值id, 文本型
.局部变量 JCE, 类_JCE解包
.局部变量 buff, 字节集
.局部变量 返回buff, 字节集
.局部变量 openapi, 文本型
.局部变量 返回IP, 文本型
.局部变量 返回端口, 整数型
.局部变量 i, 整数型
.局部变量 D理类型, 整数型

局_充值id ＝ 超级列表框1.取标题 (超级列表框1.现行选中项, 6)
局_Cookie ＝ 超级列表框1.取标题 (超级列表框1.现行选中项, 1)
yyuid ＝ 文本_取右边 (删全部空 (局_Cookie), “yyuid=”)
.如果真 (取文本长度 (yyuid) ≠ 13)
    yyuid ＝ 文本_取出中间文本 (删全部空 (局_Cookie), “yyuid=”, “;”)
.如果真结束

.计次循环首 (10, i)
    .如果 (选择框_D理.选中 ＝ 真)
        D理类型 ＝ 2
        GetIP (返回IP, 返回端口)
    .否则
        D理类型 ＝ 0
    .如果结束

    窗口_置状态信息 (超级列表框1.现行选中项, 1, 返回IP ＋ “->连接【” ＋ 到文本 (i) ＋ “】”)
    局_连接ID ＝ wss_连接 (全wss_url, , D理类型, 返回IP, 返回端口, , , , , &wb消息到达, &wb连接成功, &wb连接断开)
    .如果 (局_连接ID ＞ 0)
        跳出循环 ()

    .否则
        窗口_置状态信息 (超级列表框1.现行选中项, 1, “代理失败，正在重连...”)
    .如果结束

    系统_处理事件 ()
.计次循环尾 ()
.如果真 (局_连接ID ＝ 0)
    窗口_置状态信息 (超级列表框1.现行选中项, 1, “wss连接失败”)
    返回 ()
.如果真结束

' basestr ＝ 小黄车操作 (1,"", yyuid, 局_Cookie, “”)
.' 如果真 (WS发送bin (局_连接ID, 编码_BASE64解码 (basestr)) ＝ 假)
    '  超级列表框1.置标题 (超级列表框1.现行选中项, 4, “wss发送失败”)
    '  返回 ()

.如果真结束
.' 如果真 (哈希取出数据指针_buff解析 (局_连接ID, 返回buff) ＝ 假)
    '  窗口_置状态信息 (超级列表框1.现行选中项, 1, “buff解析失败”)
    '  返回 ()
.如果真结束

'  调试输出 (decodeBuff (返回buff))
'  buff ＝ decodeBuff2 (返回buff)
'  JCE.set (buff)
'  局_充值码 ＝ UTF8到文本 (JCE.get (“0.1”))

' 这个 如果存在充值码可以取消
.如果真 (局_充值id ≠ “”)
    WS发送bin (局_连接ID, 编码_BASE64解码 (小黄车操作 (5, “”, yyuid, 局_Cookie, 局_充值id)))  ' ’发送前先取消已有得订单
    哈希取出数据指针_buff解析 (局_连接ID, 返回buff)
    程序_延时 (1000)
    .' 如果真 (哈希取出数据指针_buff解析 (局_连接ID, 返回buff) ＝ 假)
        '  超级列表框1.置标题 (超级列表框1.现行选中项, 4, “wss取数据指针失败”)
        '  返回 ()
    .如果真结束


    ' 调试输出 (“decodeBuff----00000”, decodeBuff (返回buff))

    '  [0]┓
    '  [0](Short):200
    '  [1](Str=0):
    '  [0(1)]┛
    '  [8](Short):5000
    '  [9](Map,0):
    '  [10](Map,0):
    '  [2](Zero):0
    '  [3](Str=0):
    '  [4](Zero):0
    '  [5](Zero):0
    '  [6](Str=0):
.如果真结束

basestr ＝ 小黄车操作 (2, “”, yyuid, 局_Cookie, “”)
' 调试输出 (yyuid, 局_Cookie, , basestr)
' '调试输出 (“basestr---”, basestr)
.如果真 (WS发送bin (局_连接ID, 编码_BASE64解码 (basestr)) ＝ 假)
    wss_断开某个连接 (局_连接ID, 真)
    窗口_置状态信息 (超级列表框1.现行选中项, 1, “wss发送失败”)
    返回 ()

.如果真结束
.如果真 (哈希取出数据指针_buff解析 (局_连接ID, 返回buff) ＝ 假)
    wss_断开某个连接 (局_连接ID, 真)
    窗口_置状态信息 (超级列表框1.现行选中项, 1, “wss取数据指针失败”)
    返回 ()
.如果真结束

' '调试输出 (1111)
'  [0]┓
'  [0](Short):200
'  [1](Str=0):
'  [2](Int):5791501
'  [4](Int):4801401
'  [5](Byte):10
'  [0(1)]┛
'  [8](Short):5000
'  [9](Map,0):
'  [10](Map,0):
'  [2](Zero):0
'  [3](Str=0):
'  [4](Zero):0
'  [5](Zero):0
'  [6](Str=0):

调试输出 (“decodeBuff----11111”, decodeBuff (返回buff))
buff ＝ decodeBuff2 (返回buff)
JCE.set (buff)
返回文本 ＝ 到文本 (JCE.getShort (“0.0”))
' 调试输出 (“返回文本----”, 返回文本)
.如果真 (返回文本 ≠ “200”)
    返回文本 ＝ UTF8到文本 (JCE.get (“0.1”))
    wss_断开某个连接 (局_连接ID, 真)
    窗口_置状态信息 (超级列表框1.现行选中项, 1, 返回文本)
    返回 ()
.如果真结束

返回充值ID ＝ 到文本 (JCE.get整数 (“0.2”))
.如果真 (返回充值ID ＝ “0”)
    wss_断开某个连接 (局_连接ID, 真)
    窗口_置状态信息 (超级列表框1.现行选中项, 1, “取充值id失败”)
    返回 ()
.如果真结束

超级列表框1.置标题 (超级列表框1.现行选中项, 6, 返回充值ID)
程序_延时 (1000)
basestr ＝ 小黄车操作 (3, “”, yyuid, 局_Cookie, 返回充值ID)
.如果真 (WS发送bin (局_连接ID, 编码_BASE64解码 (basestr)) ＝ 假)
    wss_断开某个连接 (局_连接ID, 真)
    窗口_置状态信息 (超级列表框1.现行选中项, 1, “小黄车下单失败”)
    返回 ()

.如果真结束
.如果真 (哈希取出数据指针_buff解析 (局_连接ID, 返回buff) ＝ 假)
    wss_断开某个连接 (局_连接ID, 真)
    窗口_置状态信息 (超级列表框1.现行选中项, 1, “buff解析失败”)
    返回 ()
.如果真结束

'  0]┓
'  [0](Short):200
'  [1](Str=0):
'  [2](Zero):0
'  [3](Str=17):24120605162041289
'  [4](Str=19):1038320843627569152
'  [5](Str=37):weixin://wxpay/bizpayurl?pr=EHhmNCCz1
'  [6](Short):3000
'  [0(1)]┛
'  [8](Short):5000
'  [9](Map,0):
'  [10](Map,0):
'  [2](Zero):0
'  [3](Str=0):
'  [4](Zero):0
'  [5](Zero):0
'  [6](Str=0):

' 调试输出 (“decodeBuff----2222”, decodeBuff (返回buff))
buff ＝ decodeBuff2 (返回buff)
JCE.set (buff)
返回付款码 ＝ UTF8到文本 (JCE.get (“0.5”))
' 调试输出 (“返回付款码---”, 返回付款码)
.判断开始 (寻找文本 (返回付款码, “weixin://”, , 假) ≠ -1)
    窗口_置状态信息 (超级列表框1.现行选中项, 1, “精英宝典充值30,请用微信扫码...”)
    图片框1.图片 ＝ 文本生成二维码图片 (返回付款码, , , , , 10)
    标签反馈.标题 ＝ “精英宝典30充值-Weixin”

.判断 (寻找文本 (返回付款码, “openapi.alipay.com”, , 假) ≠ -1)
    窗口_置状态信息 (超级列表框1.现行选中项, 1, “精英宝典充值30,请用支付宝扫码...”)
    openapi ＝ Zfb跳转二维码 (返回付款码)
    ' '调试输出 (“Zfb跳转二维码---”, openapi)
    图片框1.图片 ＝ 文本生成二维码图片 (openapi, , , , , 10)
    标签反馈.标题 ＝ “精英宝典30充值-Zfb”

.默认
    窗口_置状态信息 (超级列表框1.现行选中项, 1, “精英宝典30，取二维码失败”)

.判断结束

wss_断开某个连接 (局_连接ID, 真)

' basestr ＝ 小黄车操作 (4,"", yyuid, 局_Cookie, 返回充值ID)
.' 如果真 (WS发送bin (局_连接ID, 编码_BASE64解码 (basestr)) ＝ 假)
    '  超级列表框1.置标题 (超级列表框1.现行选中项, 4, “小黄车下单失败”)
    '  返回 ()

.如果真结束
.' 如果真 (哈希取出数据指针_buff解析 (局_连接ID, 返回buff) ＝ 假)
    '  超级列表框1.置标题 (超级列表框1.现行选中项, 4, “buff解析失败”)
    '  返回 ()
.如果真结束

'  ' 调试输出 (“decodeBuff----3333”, decodeBuff (返回buff))


'  [0]┓
'  [0](Short):200
'  [1](Str=0):
'  [2]┓
'  [0]┓
'  [0](Zero):0
'  [1](Str=0):
'  [2](Str=0):
'  [3](Str=0):
'  [4](Str=0):
'  [5](Zero):0
'  [6](Str=0):
'  [7](Zero):0
'  [0(1)]┛
'  [1]┓
'  [0](Int):5790642
'  [1](Zero):0
'  [2](Str=0):
'  [3](Byte):10
'  [4](Str=0):
'  [5](Str=66):https://electric-shop.yaoguo.com/shop/file/Tk6u0cthPgJxJCneJfU.jpg
'  [6](Str=35):精英宝典【得300积分】12月
'  [7](Short):3000
'  [8](Byte):1
'  [9](Str=2):[]
'  [10](Zero):0
'  [11](Short):3000
'  [12](Str=0):
'  [13](Long):1733433379035
'  [14](Zero):0
'  [15](Zero):0
'  [16](Zero):0
'  [17](Zero):0
'  [18](Str=10):hy-1347501
'  [19](Zero):0
'  [20](Zero):0
'  [21](Int):87401
'  [22](Zero):0
'  [23](Zero):0
'  [24](Zero):0
'  [25](Zero):0
'  [26](Byte):5
'  [27](Byte):6
'  [28](Byte):1
'  [29](Int):4800542
'  [30](Int):1171601
'  [31](Str=0):
'  [32](Long):1199648947730
'  [33](Byte):4
'  [34](Str=0):
'  [0(1)]┛
'  [2](Str=34):还剩23小时59分钟取消订单
'  [4]┓
'  [0](Str=12):和平精英
'  [1](Str=0):
'  [2](Str=0):
'  [6](Byte):4
'  [8](Zero):0
'  [9](Str=0):
'  [10](Short):9906
'  [11](Str=0):
'  [12](Str=0):
'  [13](Short):3203
'  [0(1)]┛
'  [5](Str=0):
'  [6]┓
'  [0](Int):1347501
'  [1](Str=0):
'  [0(1)]┛
'  [0(1)]┛
'  [0(1)]┛
'  [8](Short):5000
'  [9](Map,0):
'  [10](Map,0):
'  [2](Zero):0
'  [3](Str=0):
'  [4](Zero):0
'  [5](Zero):0
'  [6](Str=0):


.子程序 _按钮_添加商品到列表_被单击

启动线程 (&商品加列表, , )

.子程序 商品加列表
.局部变量 局_商品名, 文本型

局_商品名 ＝ 组合框1.取项目文本 (组合框1.现行选中项)
超级列表框1.置标题 (超级列表框1.现行选中项, 4, 局_商品名)

.子程序 _按钮_刷新商品_被单击

.如果真 (全直播间id ＝ “”)
    提示框 (“请先设置直播间商品id，再来操作”)
    返回 ()
.如果真结束
启动线程 (&商品列表, , )

.子程序 商品列表
.局部变量 局_Cookie, 文本型
.局部变量 yyuid, 文本型
.局部变量 局_连接ID, 整数型
.局部变量 err0, 文本型
.局部变量 返回buff, 字节集
.局部变量 JCE, 类_JCE解包
.局部变量 buff, 字节集
.局部变量 局_商品名称, 文本型
.局部变量 局_商品价格, 文本型
.局部变量 局_商品剩余, 文本型
.局部变量 arr0, 文本型, , "0"
.局部变量 p, 整数型
.局部变量 局_商品id, 文本型
.局部变量 type, 字节型
.局部变量 listnum, 整数型
.局部变量 返回IP, 文本型
.局部变量 返回端口, 整数型
.局部变量 i, 整数型
.局部变量 D理类型, 整数型
.局部变量 bool, 逻辑型

局_Cookie ＝ 超级列表框1.取标题 (超级列表框1.现行选中项, 1)
.如果真 (局_Cookie ＝ “”)
    提示框 (“请再左边列表选择一条数据”)
    返回 ()
.如果真结束

yyuid ＝ 文本_取右边 (删全部空 (局_Cookie), “yyuid=”)
.如果真 (取文本长度 (yyuid) ≠ 13)
    yyuid ＝ 文本_取出中间文本 (删全部空 (局_Cookie), “yyuid=”, “;”)
.如果真结束


.计次循环首 (10, i)
    .如果 (选择框_D理.选中 ＝ 真)
        D理类型 ＝ 2
        GetIP (返回IP, 返回端口)
    .否则
        D理类型 ＝ 0
    .如果结束

    窗口_置状态信息 (超级列表框1.现行选中项, 1, 返回IP ＋ “->连接【” ＋ 到文本 (i) ＋ “】”)

    局_连接ID ＝ wss_连接 (全wss_url, , D理类型, 返回IP, 返回端口, , , , , &wb消息到达, &wb连接成功, &wb连接断开)
    .如果 (局_连接ID ＞ 0)
        跳出循环 ()

    .否则
        窗口_置状态信息 (超级列表框1.现行选中项, 1, “代理失败，正在重连...”)
    .如果结束

    系统_处理事件 ()
.计次循环尾 ()
.如果真 (局_连接ID ＝ 0)
    窗口_置状态信息 (超级列表框1.现行选中项, 1, “wss连接失败”)
    返回 ()
.如果真结束

.如果真 (WS发送bin (局_连接ID, 编码_BASE64解码 (生成查询商品剩余 (yyuid, 局_Cookie, #常量sid))) ＝ 假)
    提示框 (“wss发送失败!”)
    返回 ()
.如果真结束

.如果真 (哈希取出数据指针_buff解析 (局_连接ID, 返回buff) ＝ 假)
    提示框 (“buff解析失败!”)
    返回 ()
.如果真结束

组合框1.清空 ()
buff ＝ decodeBuff2 (返回buff)
JCE.set (buff)
listnum ＝ JCE.getLength (“0.2”)
.计次循环首 (listnum, p)
    局_商品id ＝ 到文本 (JCE.getShort (“0.2.0(” ＋ 到文本 (p － 1) ＋ “).0”))
    局_商品名称 ＝ UTF8到文本 (JCE.get (“0.2.0(” ＋ 到文本 (p － 1) ＋ “).2”))
    局_商品剩余 ＝ UTF8到文本 (JCE.get (“0.2.0(” ＋ 到文本 (p － 1) ＋ “).12”))
    JCE.get (“0.2.0(” ＋ 到文本 (p － 1) ＋ “).13”, type)
    .如果 (type ＝ 1)
        局_商品价格 ＝ 到文本 (JCE.getShort (“0.2.0(” ＋ 到文本 (p － 1) ＋ “).13”))
    .否则
        局_商品价格 ＝ 到文本 (JCE.getByte (“0.2.0(” ＋ 到文本 (p － 1) ＋ “).13”))
    .如果结束


    .如果真 (局_商品名称 ≠ “”)
        组合框1.插入项目 (p － 1, 局_商品名称 ＋ “一” ＋ 局_商品价格 ＋ “一” ＋ 局_商品id ＋ “一” ＋ 局_商品剩余 ＋ “%”, )
    .如果真结束

    系统_处理事件 ()
.计次循环尾 ()
组合框1.现行选中项 ＝ 0
arr0 ＝ 分割文本 (组合框1.取项目文本 (组合框1.现行选中项), “一”, )
.如果真 (取数组成员数 (arr0) ＜ 4)
    编辑框_剩余量.内容 ＝ “NULL”
    返回 ()
.如果真结束

编辑框_剩余量.内容 ＝ arr0 [4]
wss_断开某个连接 (局_连接ID, 真)
窗口_置状态信息 (超级列表框1.现行选中项, 1, “刷新商品完成”)

.子程序 _组合框1_列表项被选择
.局部变量 当前项目, 文本型
.局部变量 _F, 文本型, , "0"

当前项目 ＝ 组合框1.取项目文本 (组合框1.现行选中项)
_F ＝ 分割文本 (当前项目, “一”, )
.如果真 (取数组成员数 (_F) ＜ 4)
    编辑框_剩余量.内容 ＝ “NULL”
    返回 ()
.如果真结束

编辑框_剩余量.内容 ＝ _F [4]

.子程序 _一键查询兑换记录_被选择
.局部变量 p, 整数型

.计次循环首 (超级列表框1.取表项数 (), p)
    .如果真 (超级列表框1.取当前状态图片 (p － 1) ＝ 1)
        启动线程 (&商品兑换记录, p － 1, )
        程序_延时 (100)
    .如果真结束

.计次循环尾 ()

.子程序 商品兑换记录
.参数 索引EX, 整数型
.局部变量 局_Cookie, 文本型
.局部变量 yyuid, 文本型
.局部变量 str, 文本型
.局部变量 局_连接ID, 整数型
.局部变量 err0, 文本型
.局部变量 basestr, 文本型
.局部变量 返回jsonstr, 文本型
.局部变量 返回buff, 字节集
.局部变量 buff, 字节集
.局部变量 JCE, 类_JCE解包
.局部变量 p, 整数型
.局部变量 listnum, 整数型
.局部变量 局_记录商品名, 文本型
.局部变量 arr0, 文本型, , "0"
.局部变量 合并str, 文本型
.局部变量 返回IP, 文本型
.局部变量 返回端口, 整数型
.局部变量 i, 整数型
.局部变量 D理类型, 整数型

全读写锁.读进入 ()
局_Cookie ＝ 超级列表框1.取标题 (索引EX, 1)
yyuid ＝ 文本_取右边 (删全部空 (局_Cookie), “yyuid=”)
.如果真 (取文本长度 (yyuid) ≠ 13)
    yyuid ＝ 文本_取出中间文本 (删全部空 (局_Cookie), “yyuid=”, “;”)
.如果真结束

全读写锁.读退出 ()
.计次循环首 (10, i)
    .如果 (选择框_D理.选中 ＝ 真)
        D理类型 ＝ 2
        GetIP (返回IP, 返回端口)
    .否则
        D理类型 ＝ 0
    .如果结束

    窗口_置状态信息 (索引EX, 1, 返回IP ＋ “->连接【” ＋ 到文本 (i) ＋ “】”)

    局_连接ID ＝ wss_连接 (全wss_url, , D理类型, 返回IP, 返回端口, , , , , &wb消息到达, &wb连接成功, &wb连接断开)
    .如果 (局_连接ID ＞ 0)
        跳出循环 ()

    .否则
        窗口_置状态信息 (索引EX, 1, “代理失败，正在重连...”)
    .如果结束

    系统_处理事件 ()
.计次循环尾 ()
.如果真 (局_连接ID ＝ 0)
    窗口_置状态信息 (索引EX, 1, “wss连接失败”)
    返回 ()
.如果真结束



basestr ＝ 生成查询兑换记录 (yyuid, 局_Cookie, #常量sid)
.如果真 (WS发送bin (局_连接ID, 编码_BASE64解码 (basestr)) ＝ 假)
    窗口_置状态信息 (索引EX, 1, “wss发送消息失败”)
    wss_断开某个连接 (局_连接ID, 真)
    返回 ()
.如果真结束
.如果真 (哈希取出数据指针_buff解析 (局_连接ID, 返回buff) ＝ 假)
    窗口_置状态信息 (索引EX, 1, “buff解析失败”)
    wss_断开某个连接 (局_连接ID, 真)
    返回 ()
.如果真结束

' 调试输出 (decodeBuff (返回buff))
buff ＝ decodeBuff2 (返回buff)
JCE.set (buff)
listnum ＝ JCE.getLength (“0.2”)
.计次循环首 (listnum, p)
    局_记录商品名 ＝ UTF8到文本 (JCE.get (“0.2.0(” ＋ 到文本 (p － 1) ＋ “).1”))
    加入成员 (arr0, 局_记录商品名)
    系统_处理事件 ()
.计次循环尾 ()
合并str ＝ 数组_合并_快速 (arr0, “,”)
窗口_置状态信息 (索引EX, 1, “兑换数量：*” ＋ 到文本 (取数组成员数 (arr0)) ＋ “,” ＋ 合并str)
wss_断开某个连接 (局_连接ID, 真)

.子程序 保存兑换记录
.参数 参_str, 文本型
.局部变量 filename, 文本型
.局部变量 保存到文件, 鱼刺类_输出文本

filename ＝ 时间_格式化 (取现行时间 (), “MM.dd-”) ＋ “兑换记录”
保存到文件.写文本行 (参_str, filename, 取运行目录 () ＋ “\”, “.txt”)


.子程序 _按钮_查询直播间id_被单击
.局部变量 str, 文本型
.局部变量 pid, 文本型

'  str ＝ 编码_Utf8到Ansi (网页_访问_对象 (“https://www.huya.com/” ＋))
'  pid ＝ 文本_取出中间文本 (str, “data-lp=” ＋ #引号, #引号)
.' 如果 (pid ≠ “” 且 pid ≠ “0”)
    '  全直播间id ＝ pid
    '  状态条1.置文本 (1, “当前直播间id：” ＋ pid)
    '  提示框 (“获取当前直播间id成功：” ＋ pid)


.否则
    '  提示框 (“获取直播间id失败！”)
.如果结束



.子程序 _按钮_设置商品pid_被单击

.如果真 (编辑框_直播间商品pid.内容 ＝ “”)
    提示框 (“请填写当前直播间商品pid”)
    返回 ()
.如果真结束

全直播间id ＝ 删全部空 (编辑框_直播间商品pid.内容)
状态条1.置文本 (1, “当前直播间商品pid：” ＋ 全直播间id)
提示框 (“设置当前直播间商品pid成功：” ＋ 全直播间id)


.子程序 _查询当前数据领取记录_被选择

启动线程 (&领取记录, , )

.子程序 领取记录
.局部变量 局_Cookie, 文本型
.局部变量 yyuid, 文本型
.局部变量 局_昵称, 文本型
.局部变量 局_商品txt, 文本型
.局部变量 _F, 文本型, , "0"
.局部变量 局_连接ID, 长整数型
.局部变量 err0, 文本型
.局部变量 basestr, 文本型
.局部变量 返回buff, 字节集
.局部变量 buff, 字节集
.局部变量 JCE, 类_JCE解包
.局部变量 listnum, 整数型
.局部变量 p, 整数型
.局部变量 局_领取记录, 文本型
.局部变量 arr0, 文本型, , "0"
.局部变量 合并str, 文本型
.局部变量 合并str2, 文本型
.局部变量 返回IP, 文本型
.局部变量 返回端口, 整数型
.局部变量 i, 整数型
.局部变量 D理类型, 整数型

局_Cookie ＝ 超级列表框1.取标题 (超级列表框1.现行选中项, 1)
yyuid ＝ 文本_取右边 (删全部空 (局_Cookie), “yyuid=”)
.如果真 (取文本长度 (yyuid) ≠ 13)
    yyuid ＝ 文本_取出中间文本 (删全部空 (局_Cookie), “yyuid=”, “;”)
.如果真结束

.计次循环首 (10, i)
    .如果 (选择框_D理.选中 ＝ 真)
        D理类型 ＝ 2
        GetIP (返回IP, 返回端口)
    .否则
        D理类型 ＝ 0
    .如果结束

    窗口_置状态信息 (超级列表框1.现行选中项, 1, 返回IP ＋ “->连接【” ＋ 到文本 (i) ＋ “】”)

    局_连接ID ＝ wss_连接 (全wss_url, , D理类型, 返回IP, 返回端口, , , , , &wb消息到达, &wb连接成功, &wb连接断开)
    .如果 (局_连接ID ＞ 0)
        跳出循环 ()

    .否则
        窗口_置状态信息 (超级列表框1.现行选中项, 1, “代理失败，正在重连...”)
    .如果结束

    系统_处理事件 ()
.计次循环尾 ()
.如果真 (局_连接ID ＝ 0)
    窗口_置状态信息 (超级列表框1.现行选中项, 1, “wss连接失败”)
    返回 ()
.如果真结束


basestr ＝ 生成查询领取记录 (yyuid, 局_Cookie)
.如果真 (WS发送bin (局_连接ID, 编码_BASE64解码 (basestr)) ＝ 假)
    窗口_置状态信息 (超级列表框1.现行选中项, 1, “wss发送消息失败”)
    wss_断开某个连接 (局_连接ID, 真)
    返回 ()
.如果真结束
.如果真 (哈希取出数据指针_buff解析 (局_连接ID, 返回buff) ＝ 假)
    窗口_置状态信息 (超级列表框1.现行选中项, 1, “buff解析失败”)
    wss_断开某个连接 (局_连接ID, 真)
    返回 ()
.如果真结束

buff ＝ decodeBuff2 (返回buff)
JCE.set (buff)
listnum ＝ JCE.getLength (“0.2”)
.计次循环首 (listnum, p)
    局_领取记录 ＝ UTF8到文本 (JCE.get (“0.2.0(” ＋ 到文本 (p － 1) ＋ “).3”))
    .如果真 (寻找文本 (局_领取记录, “积分”, , 假) ＝ -1)
        加入成员 (arr0, 局_领取记录)
    .如果真结束

    系统_处理事件 ()
.计次循环尾 ()
wss_断开某个连接 (局_连接ID, 真)
合并str ＝ 数组_合并_快速 (arr0, #换行符)
合并str2 ＝ 数组_合并_快速 (arr0, “,”)
窗口_置状态信息 (超级列表框1.现行选中项, 1, “领取记录数量：*” ＋ 到文本 (取数组成员数 (arr0)) ＋ “,” ＋ 合并str2)
未闻花名_弹出提示 (窗口1, 合并str, 1, , , “领取记录：*” ＋ 到文本 (取数组成员数 (arr0)), 10 × 1000, , , 超级列表框1.宽度 ÷ 3, , , , 真, 真, )

.子程序 _一键查询领取记录_被选择
.局部变量 p, 整数型

.计次循环首 (超级列表框1.取表项数 (), p)
    .如果真 (超级列表框1.取当前状态图片 (p － 1) ＝ 1)
        启动线程 (&领取商品记录, p － 1, )
        程序_延时 (100)
    .如果真结束

.计次循环尾 ()

.子程序 领取商品记录
.参数 索引EX, 整数型
.局部变量 局_Cookie, 文本型
.局部变量 yyuid, 文本型
.局部变量 str, 文本型
.局部变量 局_连接ID, 整数型
.局部变量 err0, 文本型
.局部变量 basestr, 文本型
.局部变量 返回jsonstr, 文本型
.局部变量 返回buff, 字节集
.局部变量 buff, 字节集
.局部变量 JCE, 类_JCE解包
.局部变量 p, 整数型
.局部变量 listnum, 整数型
.局部变量 局_记录商品名, 文本型
.局部变量 arr0, 文本型, , "0"
.局部变量 合并str, 文本型
.局部变量 局_领取记录, 文本型
.局部变量 返回IP, 文本型
.局部变量 返回端口, 整数型
.局部变量 i, 整数型
.局部变量 D理类型, 整数型

全读写锁.读进入 ()
局_Cookie ＝ 超级列表框1.取标题 (索引EX, 1)
yyuid ＝ 文本_取右边 (删全部空 (局_Cookie), “yyuid=”)
.如果真 (取文本长度 (yyuid) ≠ 13)
    yyuid ＝ 文本_取出中间文本 (删全部空 (局_Cookie), “yyuid=”, “;”)
.如果真结束

全读写锁.读退出 ()
.计次循环首 (10, i)
    .如果 (选择框_D理.选中 ＝ 真)
        D理类型 ＝ 2
        GetIP (返回IP, 返回端口)
    .否则
        D理类型 ＝ 0
    .如果结束


    窗口_置状态信息 (索引EX, 1, 返回IP ＋ “->连接【” ＋ 到文本 (i) ＋ “】”)

    局_连接ID ＝ wss_连接 (全wss_url, , D理类型, 返回IP, 返回端口, , , , , &wb消息到达, &wb连接成功, &wb连接断开)
    .如果 (局_连接ID ＞ 0)
        跳出循环 ()

    .否则
        窗口_置状态信息 (索引EX, 1, “代理失败，正在重连...”)
    .如果结束

    系统_处理事件 ()
.计次循环尾 ()
.如果真 (局_连接ID ＝ 0)
    窗口_置状态信息 (索引EX, 1, “wss连接失败”)
    返回 ()
.如果真结束


basestr ＝ 生成查询领取记录 (yyuid, 局_Cookie)
.如果真 (WS发送bin (局_连接ID, 编码_BASE64解码 (basestr)) ＝ 假)
    窗口_置状态信息 (索引EX, 1, “wss发送消息失败”)
    wss_断开某个连接 (局_连接ID, 真)
    返回 ()
.如果真结束
.如果真 (哈希取出数据指针_buff解析 (局_连接ID, 返回buff) ＝ 假)
    窗口_置状态信息 (索引EX, 1, “buff解析失败”)
    wss_断开某个连接 (局_连接ID, 真)
    返回 ()
.如果真结束


buff ＝ decodeBuff2 (返回buff)
JCE.set (buff)
listnum ＝ JCE.getLength (“0.2”)
.计次循环首 (listnum, p)
    局_领取记录 ＝ UTF8到文本 (JCE.get (“0.2.0(” ＋ 到文本 (p － 1) ＋ “).3”))
    .如果真 (寻找文本 (局_领取记录, “积分”, , 假) ＝ -1)
        加入成员 (arr0, 局_领取记录)
    .如果真结束

    系统_处理事件 ()
.计次循环尾 ()
wss_断开某个连接 (局_连接ID, 真)
合并str ＝ 数组_合并_快速 (arr0, “,”)
窗口_置状态信息 (索引EX, 1, “领取记录数量：*” ＋ 到文本 (取数组成员数 (arr0)) ＋ “,” ＋ 合并str)

.子程序 _按钮1_被单击
.局部变量 buf, 字节集








' 调试输出 (decodeBuff (编码_BASE64解码 (“CAACBgAdAAABDAYEdFJzcB0AAD8KAv/88r8WNuivpei0puWPt+acquWIsOWPr+aNoue7keaXtumXtO+8jOivt+S9v+eUqOWFtuS7lui0puWPtws=”)))


.子程序 _确认绑定账号_被选择

启动线程 (&确认绑定账号, , )

.子程序 确认绑定账号
.参数 索引EX, 整数型
.局部变量 局_Cookie, 文本型
.局部变量 yyuid, 文本型
.局部变量 str, 文本型
.局部变量 局_连接ID, 整数型
.局部变量 err0, 文本型
.局部变量 basestr, 文本型
.局部变量 返回jsonstr, 文本型
.局部变量 返回buff, 字节集
.局部变量 buff, 字节集
.局部变量 JCE, 类_JCE解包
.局部变量 p, 整数型
.局部变量 listnum, 整数型
.局部变量 局_记录商品名, 文本型
.局部变量 arr0, 文本型, , "0"
.局部变量 合并str, 文本型
.局部变量 局_领取记录, 文本型
.局部变量 存取表, , , , <!!!>
.局部变量 jsonstr, 文本型
.局部变量 jyjson, 类_json
.局部变量 局_状态s, 文本型
.局部变量 返回文本, 文本型
.局部变量 返回IP, 文本型
.局部变量 返回端口, 整数型
.局部变量 i, 整数型
.局部变量 D理类型, 整数型

局_Cookie ＝ 超级列表框1.取标题 (超级列表框1.现行选中项, 1)
yyuid ＝ 文本_取右边 (删全部空 (局_Cookie), “yyuid=”)
.如果真 (取文本长度 (yyuid) ≠ 13)
    yyuid ＝ 文本_取出中间文本 (删全部空 (局_Cookie), “yyuid=”, “;”)
.如果真结束

.计次循环首 (10, i)
    .如果 (选择框_D理.选中 ＝ 真)
        D理类型 ＝ 2
        GetIP (返回IP, 返回端口)
    .否则
        D理类型 ＝ 0
    .如果结束

    窗口_置状态信息 (超级列表框1.现行选中项, 1, 返回IP ＋ “->连接【” ＋ 到文本 (i) ＋ “】”)

    局_连接ID ＝ wss_连接 (全wss_url, , D理类型, 返回IP, 返回端口, , , , , &wb消息到达, &wb连接成功, &wb连接断开)
    .如果 (局_连接ID ＞ 0)
        跳出循环 ()

    .否则
        窗口_置状态信息 (超级列表框1.现行选中项, 1, “代理失败，正在重连...”)
    .如果结束

    系统_处理事件 ()
.计次循环尾 ()
.如果真 (局_连接ID ＝ 0)
    窗口_置状态信息 (超级列表框1.现行选中项, 1, “wss连接失败”)
    返回 ()
.如果真结束


basestr ＝ 生成确认绑定 (yyuid, 局_Cookie)
.如果真 (WS发送bin (局_连接ID, 编码_BASE64解码 (basestr)) ＝ 假)
    窗口_置状态信息 (超级列表框1.现行选中项, 1, “wss发送消息失败”)
    wss_断开某个连接 (局_连接ID, 真)
    返回 ()
.如果真结束
.如果真 (哈希取出数据指针_buff解析 (局_连接ID, 返回buff) ＝ 假)
    窗口_置状态信息 (超级列表框1.现行选中项, 1, “buff解析失败”)
    wss_断开某个连接 (局_连接ID, 真)
    返回 ()
.如果真结束


' 失败1： [0](Byte):4
' [1](SimpleList=137):00 00 00 89 10 03 2C 3C 40 01 56 08 77 65 62 41 63 74 55 49 66 15 63 6F 6E 66 69 72 6D 42 69 6E 64 41 63 74 41 63 63 6F 75 6E 74 7D 00 00 53 08 00 02 06 00 1D 00 00 01 0C 06 04 74 52 73 70 1D 00 00 3F 0A 02 FF FC F2 BF 16 36 E8 AF A5 E8 B4 A6 E5 8F B7 E6 9C AA E5 88 B0 E5 8F AF E6 8D A2 E7 BB 91 E6 97 B6 E9 97 B4 EF BC 8C E8 AF B7 E4 BD BF E7 94 A8 E5 85 B6 E4 BB 96 E8 B4 A6 E5 8F B7 0B 81 13 88 98 0C A8 0C
' [2](Zero):0
' [3](Str=0):
' [4](Zero):0
' [5](Zero):0
' [6](Str=0):
' ==========================================
' 失败2：“
' [0]┓
' [0](Short):-4002
' [1](Str=15):未绑定账号
' [0(1)]┛
' [8](Short):5000
' [9](Map,0):
' [10](Map,0):
' [2](Zero):0
' [3](Str=18):ffbe71a01148094128
' [4](Zero):0
' [5](Zero):0
' [6](Str=0):


' ==========================================

' 成功：[0]┓
' [0](Short):200
' [1](Str=0):
' [0(1)]┛
' [8](Short):5000
' [9](Map,0):
' [10](Map,0):
' [2](Zero):0
' [3](Str=0):
' [4](Zero):0
' [5](Zero):0
' [6](Str=0):


' '调试输出 (decodeBuff (返回buff))
buff ＝ decodeBuff2 (返回buff)
JCE.set (buff)
返回文本 ＝ 到文本 (JCE.getShort (“0.0”))

.如果真 (返回文本 ＝ “200”)
    wss_断开某个连接 (局_连接ID, 真)
    窗口_置状态信息 (超级列表框1.现行选中项, 1, “确认绑定成功”)
    返回 ()
.如果真结束
.如果真 (返回文本 ＝ “-4002”)
    wss_断开某个连接 (局_连接ID, 真)
    窗口_置状态信息 (超级列表框1.现行选中项, 1, “未绑定账号”)
    返回 ()
.如果真结束


虎牙解析 (JCE.get (“1”), 存取表)
jsonstr ＝ ??? ()  ' <!!!>
调试输出 (“jsonstr---”, jsonstr)
jyjson.清除 ()
jyjson.解析 (jsonstr)
局_状态s ＝ jyjson.取通用属性 (“['6.0.1']”)
窗口_置状态信息 (超级列表框1.现行选中项, 1, 局_状态s)
wss_断开某个连接 (局_连接ID, 真)

' ‘{"6.0":"tRsp","0":"137","1":"3","2":"(Zero):0","3":"(Zero):0","4":"1","5":"webActUI","6.0.0":"-200001","6":"confirmBindActAccount","6.0.1":"该账号未到可换绑时间，请使用其他账号","8":"5000","9":"","10":""}




.子程序 _组合框_wss_列表项被选择

全wss_url ＝ 选择 (组合框_wss.现行选中项 ＝ 0, #常量wssurl, #常量wssurl2)
' 调试输出 (全wss_url)


.子程序 _一键查询换绑时间_被选择
.局部变量 p, 整数型

.计次循环首 (超级列表框1.取表项数 (), p)
    .如果真 (超级列表框1.取当前状态图片 (p － 1) ＝ 1)
        启动线程 (&查询换绑时间, p － 1, )
        程序_延时 (10)
    .如果真结束

.计次循环尾 ()

.子程序 查询换绑时间
.参数 索引EX, 整数型
.局部变量 局_Cookie, 文本型
.局部变量 yyuid, 文本型
.局部变量 str, 文本型
.局部变量 局_连接ID, 整数型
.局部变量 err0, 文本型
.局部变量 basestr, 文本型
.局部变量 返回数据指针, 长整数型
.局部变量 返回name, 文本型
.局部变量 bool, 逻辑型
.局部变量 返回jsonstr, 文本型
.局部变量 JSON, 类_json
.局部变量 返回buff, 字节集
.局部变量 buff, 字节集
.局部变量 JCE, 类_JCE解包
.局部变量 返回IP, 文本型
.局部变量 返回端口, 整数型
.局部变量 i, 整数型
.局部变量 D理类型, 整数型
.局部变量 局_换绑时间, 文本型

全读写锁.读进入 ()
局_Cookie ＝ 超级列表框1.取标题 (索引EX, 1)
yyuid ＝ 文本_取右边 (删全部空 (局_Cookie), “yyuid=”)
.如果真 (取文本长度 (yyuid) ≠ 13)
    yyuid ＝ 文本_取出中间文本 (删全部空 (局_Cookie), “yyuid=”, “;”)
.如果真结束

全读写锁.读退出 ()
.计次循环首 (10, i)
    .如果 (选择框_D理.选中 ＝ 真)
        D理类型 ＝ 2
        GetIP (返回IP, 返回端口)
    .否则
        D理类型 ＝ 0
    .如果结束

    窗口_置状态信息 (索引EX, 1, 返回IP ＋ “->连接【” ＋ 到文本 (i) ＋ “】”)
    局_连接ID ＝ wss_连接 (全wss_url, , D理类型, 返回IP, 返回端口, , , , , &wb消息到达, &wb连接成功, &wb连接断开)
    .如果 (局_连接ID ＞ 0)
        跳出循环 ()

    .否则
        窗口_置状态信息 (索引EX, 1, “代理失败，正在重连...”)
    .如果结束

    系统_处理事件 ()
.计次循环尾 ()
.如果真 (局_连接ID ＝ 0)
    窗口_置状态信息 (索引EX, 1, “wss连接失败”)
    返回 ()
.如果真结束


basestr ＝ 生成查询游戏名 (yyuid, 局_Cookie, “9504”)
.如果真 (WS发送bin (局_连接ID, 编码_BASE64解码 (basestr)) ＝ 假)
    窗口_置状态信息 (索引EX, 1, “wss发送消息失败”)
    wss_断开某个连接 (局_连接ID, 真)
    返回 ()
.如果真结束
.如果真 (哈希取出数据指针_buff解析 (局_连接ID, 返回buff) ＝ 假)
    窗口_置状态信息 (索引EX, 1, “buff解析失败”)

    wss_断开某个连接 (局_连接ID, 真)
    返回 ()
.如果真结束

' 调试输出 (取程序名称 (1), decodeBuff (返回buff))

buff ＝ decodeBuff2 (返回buff)
JCE.set (buff)
.如果真 (JCE.getShort (“0.0”) ≠ 200)
    窗口_置状态信息 (索引EX, 1, “查询昵称失败”)
    wss_断开某个连接 (局_连接ID, 真)
    返回 ()
.如果真结束

返回name ＝ UTF8到文本 (JCE.get (“0.2.4.1”))
.如果 (返回name ≠ “”)
    局_换绑时间 ＝ 时间_时间戳转文本 (到文本 (JCE.getInt (“0.2.5”)))
    窗口_置信息2 (索引EX, 1, 返回name)
    窗口_置状态信息 (索引EX, 1, “换绑时间：” ＋ 局_换绑时间)

.否则
    窗口_置信息2 (索引EX, 1, “NULL”)
    窗口_置状态信息 (索引EX, 1, “操作完成”)
.如果结束


wss_断开某个连接 (局_连接ID, 真)
